/*******************************************************************************
* Copyright (c) 2006, 2015 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
*     IBM Corporation - initial API and implementation
*********************************************************************************/

// This file was generated by LPG

package org.eclipse.cdt.internal.core.dom.lrparser.gpp;

public class GPPParserprs implements lpg.lpgjavaruntime.ParseTable, GPPParsersym {

    public interface IsKeyword {
        public final static byte isKeyword[] = {0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0
        };
    };
    public final static byte isKeyword[] = IsKeyword.isKeyword;
    public final boolean isKeyword(int index) { return isKeyword[index] != 0; }

    public interface BaseCheck {
        public final static short baseCheck[] = {0,
            0,0,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,3,1,1,1,1,1,1,
            1,1,2,2,1,1,0,1,0,4,
            2,3,2,3,2,2,1,0,1,1,
            4,4,4,8,8,3,3,4,4,3,
            3,2,2,7,7,7,7,4,4,5,
            6,3,2,2,1,1,1,2,2,2,
            2,2,2,2,2,2,4,7,9,3,
            0,1,2,2,1,2,3,4,1,0,
            3,1,0,3,5,1,4,1,3,3,
            1,3,3,3,1,3,3,1,3,3,
            1,3,3,3,3,1,3,3,1,3,
            1,3,1,3,1,3,1,3,1,5,
            1,3,5,3,3,1,3,3,1,3,
            1,3,1,3,1,3,1,3,1,5,
            1,1,3,3,3,3,3,3,3,3,
            3,3,3,1,2,1,1,3,3,3,
            3,3,3,3,3,3,3,3,1,2,
            1,3,1,0,1,0,1,1,0,1,
            1,1,1,1,1,1,1,1,3,4,
            3,2,1,4,2,1,2,5,7,5,
            1,4,1,0,5,7,2,8,1,1,
            2,2,3,2,3,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,2,1,0,4,4,2,2,2,2,
            2,1,0,1,1,1,1,1,1,2,
            1,2,2,2,1,1,2,2,1,2,
            2,1,2,2,1,2,2,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,3,
            4,4,5,2,5,6,5,0,1,0,
            7,8,0,1,3,1,0,1,3,1,
            7,6,0,7,6,1,0,6,6,4,
            1,3,1,0,1,1,2,1,1,3,
            1,3,1,1,1,1,3,9,2,2,
            3,2,5,3,7,0,1,2,2,1,
            0,1,1,1,3,1,2,1,1,2,
            3,1,1,1,3,2,1,2,2,9,
            8,2,1,3,1,3,1,0,1,0,
            2,1,1,3,1,3,2,1,5,8,
            1,2,3,1,1,7,6,3,0,0,
            1,3,1,1,5,6,6,7,7,0,
            0,1,0,1,1,1,2,4,2,2,
            1,5,1,1,1,1,1,1,1,2,
            1,0,1,3,1,1,2,3,2,1,
            2,2,1,0,1,3,3,5,5,4,
            1,1,1,1,0,1,5,2,2,1,
            2,2,1,0,1,3,4,3,1,1,
            5,2,1,1,3,3,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,2,2,7,1,0,1,3,1,
            1,2,4,2,4,7,9,5,1,3,
            1,0,1,1,3,2,3,2,2,1,
            0,1,1,4,5,2,1,2,2,2,
            2,2,2,2,1,1,2,1,1,2,
            4,4,2,1,2,5,5,3,3,1,
            4,3,1,0,1,3,1,1,1,1,
            2,6,3,1,3,1,4,0,1,1,
            1,3,1,0,4,3,1,2,1,3,
            4,4,4,6,1,0,1,3,1,3,
            0,1,4,5,2,4,2,4,3,3,
            5,3,4,3,1,2,2,2,4,2,
            1,1,2,2,3,2,2,3,1,1,
            1,1,4,1,1,1,1,1,3,3,
            3,4,-162,0,0,0,0,-22,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,-195,-2,-34,0,0,0,0,
            0,0,0,0,0,0,0,0,0,-7,
            0,-686,0,0,0,0,-8,0,0,0,
            0,0,0,0,0,0,0,-210,-6,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,-9,-69,0,0,0,-376,
            0,0,0,0,-11,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,-227,0,0,
            0,0,0,0,0,-101,-322,0,-70,0,
            0,0,-65,0,0,0,0,0,0,-29,
            0,0,-4,0,0,0,-16,0,0,0,
            0,0,0,0,0,-41,0,0,0,0,
            0,0,0,0,0,-3,-216,0,0,0,
            0,-137,0,0,0,-58,0,-18,0,-145,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,-356,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,-146,0,0,-147,0,
            0,0,0,0,0,-245,0,0,0,0,
            0,0,-19,-133,0,0,0,0,-189,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,-20,-357,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,-28,-54,-110,0,0,0,
            0,0,0,0,0,0,0,-508,0,0,
            -444,0,0,0,0,0,0,-57,0,-51,
            0,0,0,0,0,0,0,0,-190,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,-285,0,0,
            0,0,0,0,0,0,0,0,0,0,
            -107,-111,-224,0,0,-282,0,0,0,0,
            -273,0,0,0,0,-14,-541,0,0,0,
            -38,-118,0,0,-127,0,0,0,0,0,
            0,-39,0,0,0,0,0,-377,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,-155,0,-347,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,-42,0,-40,0,0,0,0,
            0,0,0,-44,0,0,0,0,0,0,
            0,0,0,0,0,0,-45,0,-404,-48,
            0,-555,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,-316,-61,0,0,0,0,0,0,
            -117,0,0,0,0,0,0,0,0,-176,
            0,0,0,0,-648,0,0,0,0,-98,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,-462,0,-319,0,0,0,-68,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,-99,0,-450,0,0,0,-324,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,-646,-333,0,0,0,
            0,0,0,-53,0,0,0,0,-455,0,
            0,0,0,0,0,0,0,-192,0,0,
            0,-183,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,-60,0,
            0,-577,0,0,-628,0,0,0,0,-15,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,-284,0,0,0,0,-71,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            -59,0,0,0,-314,0,0,0,0,-94,
            0,-63,0,0,0,0,0,0,0,0,
            0,0,-96,0,0,0,0,-457,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,-482,-315,0,0,0,-66,
            -182,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,-399,0,-72,0,
            -287,0,0,0,0,-255,0,0,0,0,
            0,0,0,0,-559,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,-253,0,0,-160,0,0,0,0,
            0,0,-91,0,0,0,0,0,0,0,
            0,-86,0,-443,0,0,0,0,-560,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,-542,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,-132,0,-566,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,-344,0,0,0,0,-486,
            0,0,0,0,0,-557,0,0,-193,-252,
            0,0,0,0,0,0,-178,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,-551,0,0,0,0,-403,0,
            -154,0,-108,0,-558,0,0,0,-331,0,
            0,0,0,-289,-626,0,0,0,0,-112,
            -242,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,-164,-584,0,
            -327,0,0,-148,0,0,0,0,-378,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,-364,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,-37,0,0,0,-335,0,0,0,
            0,0,0,-622,0,0,0,0,0,0,
            0,0,-87,-170,0,0,0,0,0,0,
            0,0,0,0,0,0,-126,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,-365,0,0,0,0,-332,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,-95,
            -174,-348,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,-552,0,
            0,0,-603,0,0,0,0,0,0,0,
            0,0,0,0,0,0,-129,0,0,0,
            0,-366,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,-88,
            -349,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,-89,0,-580,0,0,
            0,0,-649,-203,0,0,0,-627,0,0,
            0,0,0,0,-476,-135,0,0,0,0,
            -367,0,0,0,0,-90,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,-92,-350,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,-676,-386,-109,-93,
            0,0,0,0,0,0,0,-119,-684,-120,
            0,0,0,-611,0,0,0,0,0,-368,
            0,0,0,0,-614,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,-379,-157,-351,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,-123,-654,0,-124,-143,0,0,0,
            0,0,0,0,0,0,-199,0,-221,0,
            0,0,-102,0,0,0,0,0,-369,0,
            0,0,0,-106,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,-380,0,-76,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,-206,-223,0,0,-113,0,
            0,0,0,0,0,-225,0,-299,0,0,
            0,0,0,0,0,0,0,-370,0,0,
            0,0,-114,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,-381,0,-77,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,-304,0,-329,-436,-447,0,-115,0,-259,
            0,0,0,0,-330,-385,0,0,0,0,
            0,-116,0,0,0,0,-371,0,0,0,
            0,-480,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,-604,-158,-78,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            -408,0,-448,-130,-131,0,0,0,0,0,
            0,0,-134,0,0,-576,0,0,-140,0,
            -159,0,0,0,0,-372,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,-156,-79,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,-624,
            0,-453,-456,0,0,-201,0,0,0,0,
            0,-205,-465,-523,-556,0,0,0,0,0,
            0,0,0,0,-373,0,0,0,0,-481,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,-125,0,-80,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,-207,-583,-208,0,
            -483,-553,0,-670,0,0,-260,0,0,0,
            -213,-595,-598,-599,0,0,0,-617,0,0,
            0,0,0,-374,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            -202,-215,-81,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,-640,-294,-625,0,-317,
            0,0,0,-204,-228,-231,0,0,0,-651,
            0,0,0,0,0,-232,-233,0,0,0,
            0,0,-390,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,-452,
            0,0,0,0,0,-212,-631,0,0,0,
            -678,0,0,0,-142,0,0,0,0,-409,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,-468,0,0,
            0,0,0,0,0,-392,0,0,0,0,
            0,0,0,0,0,0,0,0,0,-671,
            0,0,0,-422,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            -618,0,0,-235,-236,0,-401,0,0,0,
            0,0,0,0,-300,-175,0,0,0,0,
            -209,0,-423,0,0,0,0,-237,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,-402,-469,0,0,-473,0,
            -484,0,0,-290,-50,0,0,0,0,0,
            0,0,-424,0,0,0,0,-238,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,-520,-521,0,0,0,0,0,
            -567,0,0,-639,-647,0,0,0,0,0,
            0,-425,0,0,0,0,-239,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,-579,-616,
            0,0,-635,-645,-641,0,0,0,0,0,
            0,0,0,-662,0,0,0,0,0,0,
            -426,0,0,0,0,-240,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,-656,-666,0,
            0,-677,-241,0,0,0,0,0,-243,0,
            0,-667,-244,0,0,0,0,-248,0,-427,
            0,0,0,0,-246,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,-261,-262,0,0,
            0,0,-660,0,0,0,0,-675,0,0,
            -263,-264,0,0,0,0,-249,0,-428,0,
            0,0,0,-265,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,-266,-267,0,0,0,
            0,0,0,0,0,0,-268,0,0,-269,
            -270,0,0,0,0,-250,0,-429,0,0,
            0,0,-271,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,-272,-278,-279,0,-280,-281,
            -291,0,0,-293,0,-295,0,0,-303,-305,
            0,0,0,0,-251,0,-430,0,0,0,
            0,-306,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,-449,0,0,0,0,0,-309,
            0,0,-311,0,-312,0,0,-313,-320,0,
            0,0,0,-276,0,-431,0,0,0,0,
            -336,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,-337,-352,-389,0,-391,-393,-394,0,
            0,-395,0,-396,0,0,-398,-437,0,0,
            0,0,-277,0,-432,0,0,0,0,-439,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,-440,-441,-442,0,-458,-459,-466,0,0,
            -467,0,-475,0,0,-477,-488,0,0,0,
            0,-489,0,-582,0,0,0,0,-490,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            -283,-288,-82,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,-298,-491,-663,0,-492,
            -494,-495,0,0,-496,-497,-498,0,0,-672,
            0,0,0,0,0,0,0,0,0,0,
            0,0,-601,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,-499,
            -500,0,-501,-502,-503,-504,0,0,-505,0,
            0,0,0,-506,-510,0,0,0,0,-308,
            0,-602,0,0,0,0,-512,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,-513,-518,
            -522,0,-526,-527,-528,0,0,-529,0,-530,
            0,0,0,0,0,0,0,0,-321,0,
            -657,0,0,0,0,-531,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,-532,-533,-534,
            0,-535,-536,-537,0,0,-538,0,-539,0,
            0,-679,-540,0,0,0,0,-323,0,-234,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,-548,0,-254,0,
            0,-549,0,0,-550,0,-128,0,0,0,
            0,-574,0,0,0,0,0,0,-575,-585,
            -596,-612,-613,0,0,0,-194,0,0,0,
            -615,0,0,0,0,0,0,-325,-474,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,-619,-633,-642,-650,0,
            -658,-668,-669,0,-682,0,0,0,0,0,
            -326,0,0,0,0,-485,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,-387,-406,-470,-471,-507,-569,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,-524,0,0,0,0,-570,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,-543,-554,-581,-591,-593,
            -589,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,-597,0,0,0,0,-630,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,-17,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,-35,0,0,
            0,0,0,0,0,0,0,0,0,0,
            -636,0,0,0,0,0,0,0,0,0,
            0,0,0,-24,0,0,0,0,0,0,
            0,-226,0,0,0,0,-258,0,0,0,
            0,0,-600,0,0,0,0,-605,0,0,
            0,0,0,0,0,0,0,-12,0,0,
            0,0,-64,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,-161,0,
            0,0,0,0,0,0,0,0,0,-434,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,-606,-5,0,0,
            0,0,-52,0,0,-607,0,0,0,0,
            0,0,0,0,0,0,0,0,-608,-643,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,-214,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,-644,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,-680,0,0,0,0,0,0,
            0,0,0,0,0,0,0,-328,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            -655,-661,0,0,0,0,0,0,0,-165,
            -472,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,-67,0,
            0,0,0,0,0,0,0,0,-664,-138,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,-665,0,
            0,0,0,0,0,-84,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,-363,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,-417,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,-169,0,-674,-685,
            0,0,-421,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,-361,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,-418,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,-247,0,0,0,0,0,0,
            0,0,0,0,0,0,0,-419,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,-362,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,-353,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,-446,0,0,0,0,0,
            0,0,0,0,-420,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,-562,0,0,0,0,0,
            0,0,0,0,0,0,0,0,-36,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,-358,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,-97,0,0,0,
            0,0,0,0,0,0,0,0,-172,-177,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,-416,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,-83,0,0,0,0,
            -26,0,0,0,-184,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,-229,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            -400,0,0,0,0,0,0,0,0,0,
            0,0,0,-171,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,-338,
            0,0,0,0,0,0,0,0,0,-166,
            0,0,0,0,0,0,0,0,0,0,
            0,-334,0,0,0,0,0,0,0,0,
            0,0,0,0,0,-359,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,-21,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,-360,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,-479,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,-62,0,0,0,0,-100,
            0,0,0,0,-568,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,-573,0,0,0,0,0,0,0,0,
            0,0,0,0,-23,0,0,0,0,-185,
            0,0,0,0,-25,0,0,0,0,0,
            0,0,0,-187,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            -256,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,-451,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,-310,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,-354,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,-180,
            0,0,-33,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,-230,0,0,0,0,
            0,0,0,0,0,-355,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,-388,-167,0,0,0,0,0,0,
            0,0,-186,0,0,0,0,-103,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,-410,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,-411,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,-412,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,-413,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,-414,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            -415,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,-460,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,-168,0,0,0,-173,-30,
            0,0,0,0,-493,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,-73,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,-382,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,-397,-43,0,0,0,0,0,0,
            -153,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,-85,0,0,-384,0,0,
            0,0,0,0,0,0,0,0,0,0,
            -222,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,-511,
            0,0,0,0,0,0,0,0,0,0,
            0,-594,-659,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,-514,-163,-433,0,
            0,0,0,0,0,0,-296,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,-149,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,-375,-588,-544,0,0,0,0,0,
            0,0,0,0,0,0,-545,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,-196,0,0,0,
            0,0,0,0,0,-27,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            -590,-564,0,0,0,0,0,0,0,0,
            -302,0,0,0,0,0,-509,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,-31,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,-632,-546,0,
            0,0,0,0,0,0,0,-571,0,0,
            0,0,0,-587,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,-339,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,-634,-547,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            -139,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,-586,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,-621,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,-638,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,-307,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,-150,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,-673,0,
            0,0,0,0,0,0,0,0,0,-515,
            -151,0,0,-565,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,-683,0,0,0,0,
            0,0,0,0,-687,0,-516,-152,-637,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,-609,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,-32,0,0,0,
            0,-340,0,-55,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,-519,0,0,0,0,0,0,0,
            -179,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,-104,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,-301,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,-478,
            0,0,0,-191,-1,0,0,0,0,0,
            0,0,0,0,0,-341,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,-181,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,-345,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,-346,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,-383,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,-74,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            -342,0,0,0,-75,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,-197,0,0,0,
            0,0,0,0,0,0,0,0,-610,0,
            -257,0,-198,0,0,0,0,0,0,0,
            0,0,0,-56,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,-343,0,0,0,0,0,0,0,
            0,0,0,-318,0,0,0,0,0,0,
            0,0,0,0,-105,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,-275,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,-10,-525,0,0,0,0,
            0,0,0,0,0,0,0,-629,0,0,
            0,0,0,0,0,-13,0,0,0,-563,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,-463,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,-517,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,-46,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,-47,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,-211,
            0,0,0,0,0,0,0,0,0,-49,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            -121,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,-136,0,0,0,0,0,0,0,
            0,0,0,-435,0,0,0,0,0,0,
            0,0,0,-122,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,-464,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,-188,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,-572,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,-592,0,0,0,0,
            0,0,0,0,0,0,0,0,-217,0,
            0,0,0,0,0,0,0,0,0,0,
            0,-407,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,-218,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,-561,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,-141,0,0,0,0,
            0,0,-405,0,0,0,0,0,0,0,
            0,0,0,0,0,-461,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,-438,0,0,0,0,0,0,
            0,0,-144,0,0,0,0,0,0,0,
            0,0,0,0,0,0,-200,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,-274,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,-286,
            0,0,0,-292,0,0,0,0,0,0,
            0,-578,0,0,0,0,0,0,-623,0,
            0,0,0,0,0,0,0,0,0,0,
            -652,0,0,0,-653,0,0,0,0,-219,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,-220,0,0,0,0,0,0,0,0,
            0,0,0,0,0,-297,0,0,0,-454,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,-445,0,0,0,0,0,
            0,-620,0,0,0,0,0,0,0,0,
            -681,0,0,0,0,0,0,0,0,0,
            -487,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0
        };
    };
    public final static short baseCheck[] = BaseCheck.baseCheck;
    @Override
    public final int baseCheck(int index) { return baseCheck[index]; }
    public final static short rhs[] = baseCheck;
    @Override
    public final int rhs(int index) { return rhs[index]; };

    public interface BaseAction0 {
        public final static char baseAction0[] = {
            205,5,143,103,103,32,32,102,102,47,
            47,36,36,205,1,1,16,16,16,16,
            16,16,16,17,17,17,15,11,11,6,
            6,6,6,6,6,2,89,89,4,4,
            12,12,53,53,166,166,167,82,82,52,
            18,18,18,18,18,18,18,18,18,18,
            18,18,18,18,18,18,18,18,18,18,
            168,168,168,144,144,19,19,19,19,19,
            19,19,19,19,19,19,19,19,20,20,
            206,206,207,207,208,171,171,172,172,169,
            169,173,170,170,21,21,22,22,23,23,
            23,24,24,24,24,25,25,25,26,26,
            26,35,35,35,35,35,37,37,37,39,
            39,40,40,43,43,44,44,45,45,46,
            46,55,55,55,55,55,64,64,64,65,
            65,70,70,71,71,75,75,76,76,77,
            77,78,78,78,78,78,78,78,78,78,
            78,78,78,78,34,34,48,48,48,48,
            48,48,48,48,48,48,48,48,48,41,
            33,174,174,113,113,209,209,106,238,238,
            91,91,91,91,91,91,91,91,91,92,
            92,92,90,90,56,56,210,210,93,93,
            93,125,125,211,211,94,94,94,94,212,
            212,95,95,95,95,95,96,96,98,98,
            98,98,98,98,98,98,57,57,57,57,
            57,126,126,124,124,58,213,31,31,31,
            31,31,51,51,79,79,79,79,79,149,
            149,145,145,145,145,145,146,146,146,147,
            147,147,148,148,148,176,176,176,80,80,
            80,80,80,81,81,81,13,14,14,14,
            14,14,14,14,14,14,14,14,114,150,
            150,150,150,150,150,119,119,119,177,178,
            178,120,120,214,180,180,179,179,151,151,
            127,87,87,152,60,50,181,181,61,100,
            100,182,182,175,175,153,154,154,155,84,
            84,183,183,72,72,72,67,67,66,73,
            73,101,101,83,83,83,69,107,107,116,
            115,115,63,63,68,68,74,74,54,117,
            117,117,108,108,108,109,109,110,110,110,
            111,111,128,128,128,130,130,129,129,239,
            239,112,112,216,216,216,216,216,157,49,
            49,185,215,215,158,158,104,104,104,105,
            187,217,217,42,42,118,122,122,122,122,
            219,132,131,131,121,121,121,188,189,189,
            189,189,189,189,189,189,189,189,189,221,
            221,218,218,220,220,134,135,135,135,135,
            136,222,137,133,133,223,223,190,190,190,
            190,123,123,123,224,224,8,8,9,225,
            225,226,191,184,184,192,192,193,194,194,
            7,7,10,227,227,227,227,227,227,227,
            227,227,227,227,227,227,227,227,227,227,
            227,227,227,227,227,227,227,227,227,227,
            227,227,227,227,227,227,227,227,227,227,
            227,227,227,227,227,85,88,88,195,195,
            160,160,161,161,161,161,161,161,3,162,
            162,159,159,196,240,241,241,242,242,243,
            244,244,197,198,198,198,198,228,228,228,
            139,139,139,139,139,140,141,141,138,138,
            99,86,97,97,186,186,142,142,229,229,
            229,163,163,156,156,230,230,27,27,27,
            38,38,28,28,231,231,199,199,199,200,
            200,232,232,201,201,29,29,233,233,202,
            202,202,202,30,62,234,234,235,235,203,
            203,203,164,164,164,19,19,19,19,35,
            35,46,17,92,236,204,204,204,165,165,
            31,59,79,155,155,155,134,134,134,214,
            219,132,69,84,177,152,13,13,63,99,
            99,99,18,1603,35,3125,3103,7526,1969,27,
            30,31,1092,1081,26,28,3091,296,25,23,
            50,2080,106,76,77,108,2636,2647,2646,3041,
            652,597,598,599,2884,1374,468,177,3028,4028,
            3054,1890,3042,3077,1224,308,3076,3087,3090,176,
            1315,191,3298,35,1154,32,7645,1492,27,30,
            31,1092,1081,26,28,5164,266,547,3051,1534,
            35,1154,32,5704,3898,27,30,31,1092,1081,
            374,28,269,264,265,1497,170,35,985,424,
            4580,35,1154,32,4746,1386,27,30,31,1092,
            1081,26,28,2049,296,25,23,50,2080,106,
            76,77,108,2636,2647,2646,2785,309,170,35,
            317,276,279,282,3924,678,647,2101,49,170,
            35,985,424,1987,2695,351,1164,356,1509,906,
            1761,35,314,1439,756,2784,395,562,3866,4887,
            5065,5075,6377,285,2858,2808,170,2332,2318,34,
            2956,2907,3420,3180,3183,3414,2262,1223,645,2157,
            425,308,170,35,7612,7590,3688,3027,842,5956,
            3086,35,1154,32,4746,4773,27,30,31,1092,
            1081,26,28,2049,296,25,23,50,2080,106,
            76,77,108,2636,2647,2646,2785,6023,603,4394,
            35,1154,32,4746,162,27,30,31,1092,1081,
            26,28,2049,296,25,23,50,2080,106,76,
            77,108,2636,2647,3356,2784,2113,35,312,170,
            35,2318,311,310,2858,2808,170,35,2318,313,
            2956,2907,706,935,2702,2983,2989,161,578,3086,
            35,1154,32,4746,4773,27,30,31,1092,1081,
            26,28,2049,296,25,23,50,2080,106,76,
            77,108,2636,2647,2646,2785,615,945,4394,35,
            1154,32,4746,162,27,30,31,1092,1081,26,
            28,2049,296,25,23,50,2080,106,76,77,
            108,2636,2647,3357,2784,85,1979,1845,549,575,
            5266,579,6524,2858,2808,916,605,2549,3389,2956,
            2907,170,35,3552,2983,2989,161,578,1330,2635,
            1969,347,2993,601,597,598,599,1390,1390,3086,
            35,1154,32,4746,4773,27,30,31,1092,1081,
            26,28,2049,296,25,23,50,2080,106,76,
            77,108,2636,2647,2646,2785,2156,817,3266,35,
            1154,32,7645,162,27,30,31,1092,1081,59,
            28,3914,1545,2113,35,315,2729,549,575,5266,
            579,1761,35,314,2784,7184,67,3606,35,312,
            6384,277,1669,2858,2808,170,35,330,3140,2956,
            2907,2993,469,357,2983,2989,161,578,3541,35,
            1154,32,4746,4773,27,30,31,1092,1081,26,
            28,2049,296,25,23,50,2080,106,76,77,
            108,2636,2647,2646,2785,1970,618,4394,35,1154,
            32,4746,162,27,30,31,1092,1081,26,28,
            2049,296,25,23,50,2080,106,76,77,108,
            2636,3287,1327,2784,949,1574,4669,549,575,5266,
            579,4028,2858,2808,1034,534,1923,1759,2956,2907,
            3570,3577,2395,2983,2989,161,578,2053,3152,1969,
            1332,2993,3620,35,1154,32,4746,378,27,30,
            31,1092,1081,26,28,2049,296,25,23,50,
            2080,106,76,77,108,2636,2647,2646,3041,1001,
            987,627,2476,479,3577,1556,177,3028,2248,3054,
            1001,3042,3077,3051,55,3076,3087,3090,176,7173,
            414,170,35,985,424,2484,550,575,5266,579,
            1761,35,489,1937,7554,3236,35,1154,32,4746,
            1137,27,30,31,1092,1081,26,28,2049,296,
            25,23,50,2080,106,76,77,108,2636,2647,
            2646,3041,3113,308,170,35,330,4028,55,177,
            3028,2248,3054,850,3042,3077,415,2795,3076,3087,
            3090,176,561,414,170,35,985,424,3462,35,
            1154,32,4746,5164,27,30,31,1092,1081,26,
            28,2049,296,25,23,50,2080,106,76,77,
            108,2636,2647,2646,3041,339,3761,170,35,2318,
            316,4028,177,3028,167,3054,488,3042,3077,2429,
            421,3076,3087,3090,176,375,613,2992,1545,415,
            2795,359,3310,35,1154,32,4746,378,27,30,
            31,1092,1081,26,28,2049,296,25,23,50,
            2080,106,76,77,108,2636,2647,2646,3041,2125,
            2979,478,1797,492,396,3690,177,3028,2248,3054,
            67,3042,3077,360,6774,3076,3087,3090,176,2930,
            414,2836,1666,422,3886,35,1154,32,4746,1515,
            27,30,31,1092,1081,26,28,2049,296,25,
            23,50,2080,106,76,77,108,2636,2647,2646,
            3041,2702,482,3131,3134,554,35,432,177,3028,
            55,3054,67,3042,3077,1891,7416,3076,3087,3090,
            176,496,191,2957,363,370,415,2795,3886,35,
            1154,32,4746,616,27,30,31,1092,1081,26,
            28,2049,296,25,23,50,2080,106,76,77,
            108,2636,2647,2646,3041,2243,554,35,432,7562,
            67,55,177,3028,7493,3054,1404,3042,3077,611,
            255,3076,3087,3090,176,474,408,170,2884,173,
            412,3266,35,1154,32,7645,3818,27,30,31,
            1092,1081,58,28,3346,3886,35,1154,32,4746,
            3688,27,30,31,1092,1081,26,28,2049,296,
            25,23,50,2080,106,76,77,108,2636,2647,
            2646,3041,2248,2246,2154,4229,1843,3570,4028,177,
            3028,5101,3054,67,3042,3077,3278,5585,3076,3087,
            3090,176,1041,408,170,35,2318,3547,3027,3886,
            35,1154,32,4746,378,27,30,31,1092,1081,
            26,28,2049,296,25,23,50,2080,106,76,
            77,108,2636,2647,2646,3041,2628,2078,2406,1226,
            35,2318,311,177,3028,407,3054,3281,3042,3077,
            672,2795,3076,3087,3090,176,2101,408,3462,35,
            1154,32,4746,617,27,30,31,1092,1081,26,
            28,2049,296,25,23,50,2080,106,76,77,
            108,2636,2647,2646,3041,1761,35,566,215,7671,
            170,3201,177,3028,924,3054,2429,3042,3077,1545,
            1545,3076,3087,3090,176,465,613,3693,35,1154,
            32,4746,406,27,30,31,1092,1081,26,28,
            2049,296,25,23,50,2080,106,76,77,108,
            2636,2647,2646,3041,170,3572,2318,74,3569,170,
            3451,2241,3028,55,3054,2520,3042,3077,929,475,
            3076,3087,3136,197,1545,170,35,985,424,1666,
            3914,3383,35,1154,32,4746,404,27,30,31,
            1092,1081,26,28,2049,296,25,23,50,2080,
            106,76,77,108,2636,2647,2646,3041,55,3982,
            2326,1970,533,4028,2638,177,3028,467,3054,3000,
            3042,3077,495,6675,3076,3087,3090,176,1666,175,
            362,369,370,2627,3951,35,1154,32,4746,378,
            27,30,31,1092,1081,26,28,2049,296,25,
            23,50,2080,106,76,77,108,2636,2647,2646,
            2785,325,3989,1408,35,1154,32,2795,162,41,
            30,31,1092,1081,2243,604,2549,51,7562,612,
            2781,370,3126,2255,3524,35,1154,32,7550,2784,
            27,30,31,1092,1081,57,28,67,2858,2808,
            4161,7507,426,4444,2956,2907,463,2547,4444,2983,
            2989,161,173,3951,35,1154,32,4746,475,27,
            30,31,1092,1081,26,28,2049,296,25,23,
            50,2080,106,76,77,108,2636,2647,2646,2785,
            187,187,4394,35,1154,32,4746,162,27,30,
            31,1092,1081,26,28,2049,296,25,23,50,
            2080,106,76,77,108,2636,3292,1553,2784,1226,
            35,2318,3573,170,35,2318,3618,2858,2808,88,
            42,3005,102,2956,2907,44,3005,2354,2983,2989,
            161,172,3951,35,1154,32,4746,2406,27,30,
            31,1092,1081,26,28,2049,296,25,23,50,
            2080,106,76,77,108,2636,2647,2646,2785,2634,
            2436,4394,35,1154,32,4746,162,27,30,31,
            1092,1081,26,28,2049,296,25,23,50,2080,
            106,76,77,108,3299,2841,3235,2784,3731,35,
            564,427,61,571,1330,463,2858,2808,170,35,
            2318,565,2956,2907,466,3092,3914,2983,2989,161,
            171,3951,35,1154,32,4746,3529,27,30,31,
            1092,1081,26,28,2049,296,25,23,50,2080,
            106,76,77,108,2636,2647,2646,2785,623,1127,
            4394,35,1154,32,4746,162,27,30,31,1092,
            1081,26,28,2049,296,25,23,50,2080,106,
            76,77,108,3347,2796,2844,2784,571,2322,55,
            5298,483,483,5987,1019,2858,2808,2008,55,571,
            55,2956,2907,704,3055,5947,2983,2989,161,170,
            3951,35,1154,32,4746,3374,27,30,31,1092,
            1081,26,28,2049,296,25,23,50,2080,106,
            76,77,108,2636,2647,2646,2785,3979,3914,4394,
            35,1154,32,4746,162,27,30,31,1092,1081,
            26,28,2049,296,25,23,50,2080,106,76,
            77,108,3350,55,4174,2784,55,55,6747,358,
            1516,6763,3932,2248,2858,2808,593,55,2395,55,
            2956,2907,6864,2185,1719,2983,2989,161,169,3951,
            35,1154,32,4746,1736,27,30,31,1092,1081,
            26,28,2049,296,25,23,50,2080,106,76,
            77,108,2636,2647,2646,2785,3986,628,4394,35,
            1154,32,4746,162,27,30,31,1092,1081,26,
            28,2049,296,25,23,50,2080,106,76,77,
            85,672,2795,391,2784,2145,55,457,70,1233,
            593,1868,2248,2858,2808,390,55,585,55,2956,
            2907,4842,593,2680,2983,2989,161,168,3951,35,
            1154,32,4746,1853,27,30,31,1092,1081,26,
            28,2049,296,25,23,50,2080,106,76,77,
            108,2636,2647,2646,2785,4044,93,4394,35,1154,
            32,4746,162,27,30,31,1092,1081,26,28,
            2049,296,25,23,50,2080,106,76,77,83,
            672,2795,55,2784,55,3603,2116,1339,3581,2342,
            2099,2248,2858,2808,89,55,55,102,2956,2907,
            2500,998,1345,2983,2989,161,167,3951,35,1154,
            32,4746,475,27,30,31,1092,1081,26,28,
            2049,296,25,23,50,2080,106,76,77,108,
            2636,2647,2646,2785,5040,3914,4394,35,1154,32,
            4746,162,27,30,31,1092,1081,26,28,2049,
            296,25,23,50,2080,106,76,77,82,672,
            2795,55,2784,55,1731,2458,6936,642,2552,630,
            2248,2858,2808,1874,3577,3577,1859,2956,2907,2345,
            7569,3914,2983,2989,161,166,3951,35,1154,32,
            4746,388,27,30,31,1092,1081,26,28,2049,
            296,25,23,50,2080,106,76,77,108,2636,
            2647,2646,2785,24,1474,4394,35,1154,32,4746,
            162,27,30,31,1092,1081,26,28,2049,296,
            25,23,50,2080,106,76,77,81,672,2795,
            67,2784,55,55,7581,429,2957,1182,1715,463,
            2858,2808,657,55,1430,55,2956,2907,6960,2563,
            2568,2983,2989,161,165,3951,35,1154,32,4746,
            475,27,30,31,1092,1081,26,28,2049,296,
            25,23,50,2080,106,76,77,108,2636,2647,
            2646,2785,1969,338,4394,35,1154,32,4746,162,
            27,30,31,1092,1081,26,28,2049,296,25,
            23,50,2080,106,76,77,80,2975,55,2245,
            2784,2795,1872,1385,554,35,432,753,2167,2858,
            2808,379,55,1872,55,2956,2907,3911,2429,2626,
            2983,2989,161,164,3951,35,1154,32,4746,3518,
            27,30,31,1092,1081,26,28,2049,296,25,
            23,50,2080,106,76,77,108,2636,2647,2646,
            2785,2957,3850,4394,35,1154,32,4746,162,27,
            30,31,1092,1081,26,28,2049,296,25,23,
            50,2080,106,76,77,79,2520,1545,67,2784,
            3051,1666,7585,428,2957,1539,754,463,2858,2808,
            170,35,985,424,2956,2907,2013,74,335,2983,
            2989,161,163,4394,35,1154,32,4746,389,27,
            30,31,1092,1081,26,28,2049,296,25,23,
            50,2080,106,76,77,108,2636,2647,2646,3041,
            3051,624,470,365,370,3625,3304,1545,3028,1666,
            3054,1969,3042,3077,584,1969,3076,3087,3136,197,
            3886,35,1154,32,4746,584,27,30,31,1092,
            1081,26,28,2049,296,25,23,50,2080,106,
            76,77,108,2636,2647,2646,3041,1556,3051,2929,
            361,2246,332,440,177,3028,2957,3054,2105,3042,
            3077,2944,370,3076,3087,3090,176,587,192,2894,
            170,35,985,424,3886,35,1154,32,4746,3449,
            27,30,31,1092,1081,26,28,2049,296,25,
            23,50,2080,106,76,77,108,2636,2647,2646,
            3041,55,418,212,1403,1322,2003,2957,177,3028,
            97,3054,469,3042,3077,1969,1969,3076,3087,3090,
            176,3536,188,3886,35,1154,32,4746,439,27,
            30,31,1092,1081,26,28,2049,296,25,23,
            50,2080,106,76,77,108,2636,2647,2646,3041,
            331,2472,1556,620,232,2957,2957,177,3028,3364,
            3054,3051,3042,3077,1969,3160,3076,3087,3090,176,
            7194,187,411,3886,35,1154,32,4746,743,27,
            30,31,1092,1081,26,28,2049,296,25,23,
            50,2080,106,76,77,108,2636,2647,2646,3041,
            1556,2153,231,334,2957,2957,438,177,3028,3427,
            3054,2957,3042,3077,3552,163,3076,3087,3090,176,
            411,186,3886,35,1154,32,4746,557,27,30,
            31,1092,1081,26,28,2049,296,25,23,50,
            2080,106,76,77,108,2636,2647,2646,3041,3051,
            3851,235,233,2957,3055,55,177,3028,442,3054,
            3348,3042,3077,321,55,3076,3087,3090,176,2077,
            185,3886,35,1154,32,4746,661,27,30,31,
            1092,1081,26,28,2049,296,25,23,50,2080,
            106,76,77,108,2636,2647,2646,3041,1545,4108,
            5783,409,55,1036,4114,177,3028,2089,3054,1413,
            3042,3077,163,2522,3076,3087,3090,176,3914,184,
            3886,35,1154,32,4746,1329,27,30,31,1092,
            1081,26,28,2049,296,25,23,50,2080,106,
            76,77,108,2636,2647,2646,3041,2536,5036,2393,
            2127,322,2895,2957,177,3028,585,3054,2957,3042,
            3077,1339,919,3076,3087,3090,176,3914,183,3886,
            35,1154,32,4746,749,27,30,31,1092,1081,
            26,28,2049,296,25,23,50,2080,106,76,
            77,108,2636,2647,2646,3041,852,1742,71,2206,
            256,98,417,177,3028,226,3054,2537,3042,3077,
            2880,2596,3076,3087,3090,176,3914,182,3886,35,
            1154,32,4746,5088,27,30,31,1092,1081,26,
            28,2049,296,25,23,50,2080,106,76,77,
            108,2636,2647,2646,3041,4992,2700,2791,2285,2899,
            2977,2613,177,3028,2605,3054,2168,3042,3077,81,
            3234,3076,3087,3090,176,3914,181,3886,35,1154,
            32,4746,3394,27,30,31,1092,1081,26,28,
            2049,296,25,23,50,2080,106,76,77,108,
            2636,2647,2646,3041,1887,35,489,5680,7554,416,
            2521,177,3028,2704,3054,2612,3042,3077,3853,2051,
            3076,3087,3090,176,3914,180,3886,35,1154,32,
            4746,1414,27,30,31,1092,1081,26,28,2049,
            296,25,23,50,2080,106,76,77,108,2636,
            2647,2646,3041,3264,2346,1782,69,3193,97,2696,
            177,3028,2878,3054,2882,3042,3077,2973,5136,3076,
            3087,3090,176,3914,179,3886,35,1154,32,4746,
            3656,27,30,31,1092,1081,26,28,2049,296,
            25,23,50,2080,106,76,77,108,2636,2647,
            2646,3041,3686,3720,3855,68,1649,1657,2152,177,
            3028,3005,3054,3576,3042,3077,2437,266,3076,3087,
            3090,176,359,178,4016,35,1154,32,4746,946,
            27,30,31,1092,1081,26,28,2049,296,25,
            23,50,2080,106,76,77,108,2636,2647,2646,
            2785,3914,3914,4394,35,1154,32,4746,162,27,
            30,31,1092,1081,26,28,2049,296,25,23,
            50,2080,106,76,77,78,3914,1042,2520,2784,
            1138,2339,2607,53,52,2626,2778,2869,2858,2808,
            170,35,985,424,2956,2907,486,3131,3134,2983,
            2989,161,160,3886,35,1154,32,4746,413,27,
            30,31,1092,1081,26,28,2049,296,25,23,
            50,2080,106,76,77,108,2636,2647,2646,3041,
            839,3587,468,3795,3388,3219,2701,177,3028,3801,
            3054,1666,3042,3077,2969,193,3076,3087,3090,176,
            3914,641,3886,35,1154,32,4746,3821,27,30,
            31,1092,1081,26,28,2049,296,25,23,50,
            2080,106,76,77,108,2636,2647,2646,3041,1035,
            273,3568,2473,2698,2717,2808,177,3028,2983,3054,
            3834,3042,3077,2982,370,3076,3087,3090,176,3914,
            140,4081,35,1154,32,4746,4152,27,30,31,
            1092,1081,26,28,2049,296,25,23,50,2080,
            106,76,77,108,2636,2647,2646,3041,1031,5084,
            5244,633,3819,3950,3273,177,3028,4051,3054,4116,
            3042,3077,1969,3809,3076,3087,3090,176,3914,222,
            3165,35,1154,32,4746,673,27,30,31,1092,
            1081,26,28,2049,296,25,23,50,2080,106,
            76,77,108,2636,2647,2646,2785,3920,1556,55,
            602,378,3981,189,1404,1717,1556,1860,35,1154,
            32,2411,2153,2601,30,31,1092,1081,586,3356,
            3612,4047,3860,2427,3989,3224,2365,1860,35,1154,
            32,4112,3685,40,30,31,1092,1081,3914,4394,
            35,1154,32,4746,3145,27,30,31,1092,1081,
            26,28,2049,296,25,23,50,2080,106,76,
            77,108,2636,2647,2646,3041,2886,3869,4118,2364,
            622,3700,4173,4176,3028,4135,3054,8899,3042,3077,
            8899,3914,3076,3087,3136,197,4394,35,1154,32,
            4746,8899,27,30,31,1092,1081,26,28,2049,
            296,25,23,50,2080,106,76,77,108,2636,
            2647,2646,3041,621,8899,8899,8899,8899,8899,8899,
            8899,3028,8899,3054,8899,3042,3077,8899,8899,3076,
            3087,3136,197,8899,8899,3914,3914,3914,3457,3914,
            4394,35,1154,32,4746,459,27,30,31,1092,
            1081,26,28,2049,296,25,23,50,2080,106,
            76,77,108,2636,2647,2646,3041,90,385,634,
            607,2548,8899,8899,8899,3028,8899,3054,8899,3042,
            3077,8899,3914,3076,3087,3136,197,4394,35,1154,
            32,4746,329,27,30,31,1092,1081,26,28,
            2049,296,25,23,50,2080,106,76,77,108,
            2636,2647,2646,3041,2564,8899,8899,8899,8899,8899,
            8899,8899,3028,8899,3054,8899,3042,3077,8899,8899,
            3076,3087,3136,197,8899,8899,3914,3914,2527,3914,
            3914,4394,35,1154,32,4746,458,27,30,31,
            1092,1081,26,28,2049,296,25,23,50,2080,
            106,76,77,108,2636,2647,2646,3041,2364,487,
            143,6038,6105,8899,8899,8899,3028,8899,3054,8899,
            3042,3077,8899,3914,3076,3087,3136,197,4642,35,
            1154,32,4746,461,27,30,31,1092,1081,26,
            28,2049,296,25,23,50,2080,106,76,77,
            108,2636,2647,2646,3041,6172,1753,8899,8899,8899,
            8899,8899,8899,3028,8899,3054,8899,3042,3077,273,
            296,3076,3087,3136,197,8899,8899,8899,8899,8899,
            8899,8899,8899,652,597,598,599,644,5274,35,
            1154,32,6875,5000,27,30,31,1092,1081,374,
            28,5328,35,1154,32,5704,5000,27,30,31,
            1092,1081,374,28,2539,600,597,598,599,266,
            8899,8899,746,3201,8899,8899,6473,3159,600,597,
            598,599,7342,3914,2978,274,264,265,3914,6505,
            8899,600,597,598,599,8899,8899,8899,1749,1334,
            330,8899,3963,3413,354,1292,356,2184,8899,386,
            349,1250,8899,8899,8899,2935,8899,354,1292,356,
            67,367,4667,349,1250,600,597,598,599,3655,
            601,597,598,599,6761,4667,986,8899,8899,8899,
            4394,35,1154,32,4746,5318,27,30,31,1092,
            1081,26,28,2049,296,25,23,50,2080,106,
            76,77,108,2636,2647,2646,3041,3914,4792,35,
            985,424,5590,1875,8899,3028,3914,3054,387,3042,
            3077,271,296,3076,3513,379,2557,2320,384,3914,
            3914,341,345,796,3686,652,597,598,599,66,
            600,597,598,599,341,345,796,8899,65,8899,
            308,986,8899,1453,8899,1749,35,330,8899,8899,
            2173,64,55,324,8899,4033,3033,8899,8899,8899,
            387,266,8899,2173,8899,3914,8899,379,2557,2320,
            384,1442,600,597,598,599,377,269,264,265,
            1010,1817,3223,986,3056,35,1154,32,5704,7436,
            27,30,31,1092,1081,374,28,54,1358,35,
            3286,32,6875,5000,27,30,31,1092,1081,374,
            28,8899,309,4995,8899,8899,276,279,282,3924,
            678,3914,3914,8899,8899,600,597,598,599,8899,
            55,1860,35,1154,32,4028,4952,2891,30,31,
            1092,1081,8899,3866,4887,5065,5075,6377,285,2413,
            354,1292,356,101,3038,2522,349,1250,8899,3914,
            2230,378,8899,645,354,1292,356,2184,588,8899,
            349,1250,4033,8899,5956,8899,601,597,598,599,
            8899,367,2015,8899,3989,387,8899,600,597,598,
            599,2691,379,2557,2320,384,8899,1010,5751,3914,
            8899,589,6023,8899,3127,5318,4394,2332,1154,2444,
            4746,8899,27,30,31,1092,1081,26,28,2049,
            296,25,23,50,2080,106,76,77,84,8899,
            8899,3512,6520,455,3283,4518,35,1154,32,4746,
            8899,27,30,31,1092,1081,26,28,2049,296,
            25,23,50,2080,106,76,77,108,2636,2647,
            2646,2785,4394,35,1154,32,4746,8899,27,30,
            31,1092,1081,26,28,2049,296,25,23,50,
            2080,106,76,77,108,2636,2647,2646,3041,8899,
            2784,8899,2169,8899,8899,8899,8899,3499,8899,2858,
            2808,8899,8899,8899,8899,2956,3406,3978,8899,3914,
            3783,8899,1404,4394,35,1154,32,4746,2839,27,
            30,31,1092,1081,26,28,2049,296,25,23,
            50,2080,106,76,77,108,2636,2647,2646,3041,
            193,6306,591,8899,8899,8899,8899,8899,3028,8899,
            3054,8899,3042,3077,8899,8899,3504,4518,35,1154,
            32,4746,8899,27,30,31,1092,1081,26,28,
            2049,296,25,23,50,2080,106,76,77,108,
            2636,2647,2646,2785,4394,35,1154,32,4746,8899,
            27,30,31,1092,1081,26,28,2049,296,25,
            23,50,2080,106,76,77,108,2636,2647,2646,
            3041,8899,2784,8899,170,35,985,424,8899,3500,
            3321,2858,2808,8899,8899,8899,8899,3404,4394,35,
            1154,32,4746,8899,27,30,31,1092,1081,26,
            28,2049,296,25,23,50,2080,106,76,77,
            108,2636,2647,2646,3041,8899,49,8899,8899,8899,
            8899,8899,8899,3028,8899,3054,46,3042,3502,4518,
            35,1154,32,4746,8899,27,30,31,1092,1081,
            26,28,2049,296,25,23,50,2080,106,76,
            77,108,2636,2647,2646,2785,4394,35,1154,32,
            4746,8899,27,30,31,1092,1081,26,28,2049,
            296,25,23,50,2080,106,76,77,108,2636,
            2647,2646,3351,8899,2784,362,35,985,424,8899,
            8899,8899,8899,2858,3405,4394,35,1154,32,4746,
            8899,27,30,31,1092,1081,26,28,2049,296,
            25,23,50,2080,106,76,77,108,2636,2647,
            2646,3041,8899,8899,8899,8899,8899,308,8899,8899,
            3028,8899,3054,8899,3503,4719,35,1154,32,6875,
            8899,27,30,31,1092,1081,374,28,8899,2003,
            35,1154,32,5704,5000,27,30,31,1092,1081,
            374,28,600,597,598,599,8899,8899,4518,35,
            1154,32,4746,5847,27,30,31,1092,1081,26,
            28,2049,296,25,23,50,2080,106,76,77,
            108,2636,2647,2646,2785,8899,8899,2014,8899,3555,
            8899,354,1292,356,2184,8899,8899,350,1250,3978,
            2448,8899,8899,8899,1404,354,1292,356,368,8899,
            8899,349,1250,2784,600,597,598,599,8899,72,
            8899,8899,3400,1061,8899,4680,387,601,597,598,
            599,8899,193,381,2557,2320,384,4394,35,1154,
            32,4746,8899,27,30,31,1092,1081,26,28,
            2049,296,25,23,50,2080,106,76,77,108,
            2636,2647,2646,3041,8899,8899,1596,35,985,424,
            8899,1431,3028,8899,3498,3148,35,1154,32,5704,
            5000,27,30,31,1092,1081,374,28,8899,8899,
            8899,8899,8899,4898,35,553,8899,8899,600,597,
            598,599,600,597,598,599,271,296,49,4179,
            8899,3489,3322,6505,8899,8899,1404,8899,1509,1125,
            652,597,598,599,3571,35,1154,32,7550,8899,
            27,30,31,1092,1081,56,28,8899,8899,8899,
            1879,354,1292,356,189,8899,8899,349,1250,8899,
            55,8899,2885,273,296,4028,266,8899,234,4667,
            8899,8899,746,3201,8899,8899,8899,652,597,598,
            599,8899,269,264,265,8899,4518,35,1154,32,
            4746,378,27,30,31,1092,1081,26,28,2049,
            296,25,23,50,2080,106,76,77,108,2636,
            2647,2646,2785,266,3989,8899,8899,1995,8899,8899,
            8899,276,279,282,3924,678,8899,8899,8899,274,
            264,265,8899,8899,3129,8899,8899,8899,342,345,
            796,3401,8899,8899,652,597,598,599,4820,6090,
            6382,6536,6853,4518,35,1154,32,4746,1490,27,
            30,31,1092,1081,26,28,2049,296,25,23,
            50,2080,106,76,77,108,2636,2647,2646,2785,
            266,8899,1392,35,3286,32,5704,5000,27,30,
            31,1092,1081,374,28,803,278,264,265,562,
            563,567,60,8899,8899,8899,8899,8899,3403,3562,
            597,598,599,8899,8899,8899,8899,8899,8899,8899,
            5052,8899,8899,324,8899,554,35,2409,6121,8899,
            2440,6721,8899,8899,6567,3116,35,3286,32,5704,
            5000,27,30,31,1092,1081,374,28,354,1292,
            356,2551,3223,8899,349,1250,8899,600,597,598,
            599,8899,600,597,598,599,2015,49,5240,8899,
            8899,8899,8899,5052,8899,8899,8899,1509,842,8899,
            8899,8899,3195,35,3286,32,5704,5000,27,30,
            31,1092,1081,374,28,2010,8899,8899,8899,2184,
            2787,354,1292,356,8899,2103,8899,349,1250,3562,
            597,598,599,367,2867,8899,7257,455,3283,2015,
            5052,8899,652,597,598,599,8899,600,597,598,
            599,289,652,597,598,599,673,6421,5981,8899,
            8899,600,597,598,599,8899,3978,8899,354,1292,
            356,1404,5240,8899,349,1250,4190,8899,266,8899,
            8899,8899,262,8899,189,8899,2015,1556,266,7652,
            455,3283,2736,8899,281,264,265,8899,213,193,
            237,249,739,364,284,264,265,202,236,246,
            247,248,250,651,5247,35,1154,32,5704,7436,
            27,30,31,1092,1081,374,28,8899,8899,8899,
            8899,8899,8899,8899,8899,8899,7257,455,3283,8899,
            8899,201,216,200,203,204,205,206,207,4394,
            35,1154,32,4746,8899,27,30,31,1092,1081,
            26,28,2049,296,25,23,50,2080,106,76,
            77,108,2636,2647,2646,3352,8899,8899,8899,3787,
            354,1292,356,8899,8899,8899,349,1250,8899,8899,
            2512,8899,8899,4146,35,1154,32,4746,3277,27,
            30,31,1092,1081,26,28,2049,296,25,23,
            50,2080,648,76,77,387,3651,601,597,598,
            599,6761,379,2557,2320,384,4394,35,1154,32,
            4746,3276,27,30,31,1092,1081,26,28,2049,
            296,25,23,50,2080,106,76,77,108,2636,
            2647,2646,3355,1,55,8899,8899,8899,673,4028,
            8899,5303,8899,3492,8899,8899,8899,8899,1559,35,
            1154,32,6875,8899,27,30,31,1092,1081,374,
            28,8899,8899,8899,262,378,189,8899,8899,1556,
            600,597,598,599,2736,600,597,598,599,8899,
            213,5240,237,249,739,8899,5240,8899,3989,202,
            236,246,247,248,250,651,8899,387,8899,8899,
            8899,8899,8899,8899,379,2557,2320,384,3130,8899,
            401,8899,3139,577,354,1292,356,2184,8899,8899,
            352,1250,8899,201,217,200,203,204,205,206,
            207,368,3577,8899,8899,214,4394,35,1154,32,
            4746,8899,27,30,31,1092,1081,26,28,2049,
            296,25,23,50,2080,106,76,77,108,2636,
            2647,2646,3453,4394,35,1154,32,4746,8899,27,
            30,31,1092,1081,26,28,2049,296,25,23,
            50,2080,106,76,77,108,2636,2647,2646,3454,
            4394,35,1154,32,4746,8899,27,30,31,1092,
            1081,26,28,2049,296,25,23,50,2080,106,
            76,77,108,2636,2647,2646,3455,4394,35,1154,
            32,4746,8899,27,30,31,1092,1081,26,28,
            2049,296,25,23,50,2080,106,76,77,108,
            2636,2647,2646,3458,4394,35,1154,32,4746,8899,
            27,30,31,1092,1081,26,28,2049,296,25,
            23,50,2080,106,76,77,108,2636,2647,2646,
            3460,4394,35,1154,32,4746,8899,27,30,31,
            1092,1081,26,28,2049,296,25,23,50,2080,
            106,76,77,108,2636,2647,2646,3476,1724,35,
            1154,32,5704,7374,27,30,31,1092,1081,374,
            28,8899,8899,8899,8899,170,35,985,424,55,
            75,35,985,424,1404,4394,35,1154,32,4746,
            386,27,30,31,1092,1081,26,28,2049,296,
            25,23,50,2080,106,76,77,108,2636,2647,
            2646,3788,189,8899,8899,8899,8899,49,8899,8899,
            1724,8899,49,8899,354,1292,356,1509,1066,8899,
            349,1250,1509,1409,8899,8899,8899,4208,35,1154,
            32,4746,1061,27,30,31,1092,1081,26,28,
            2049,296,25,23,50,2080,637,76,77,387,
            8899,8899,799,8899,8899,8899,379,2557,2320,384,
            3755,35,1154,32,4746,3686,27,30,31,1092,
            1081,26,28,2049,296,25,23,50,2080,106,
            76,77,107,385,75,35,985,424,673,8899,
            8899,3823,35,1154,32,4746,2248,27,30,31,
            1092,1081,26,28,2049,296,25,23,50,2080,
            106,76,77,104,262,3305,189,8899,55,1556,
            673,8899,8899,4028,2736,8899,49,8899,8899,8899,
            213,3074,237,249,739,8899,1509,1082,8899,202,
            236,246,247,248,250,651,378,8899,189,378,
            481,1556,8899,8899,8899,673,2411,8899,601,597,
            598,599,3817,4043,672,2795,1231,673,1404,3989,
            8899,2365,3989,201,3450,200,203,204,205,206,
            207,262,8899,189,8899,8899,1556,8899,8899,2128,
            8899,2736,3689,378,8899,189,189,213,8899,237,
            249,739,8899,221,195,8899,202,236,246,247,
            248,250,651,8899,8899,8899,7316,577,55,3574,
            8899,8899,673,673,1404,8899,8899,3340,35,1154,
            32,5704,8899,27,30,31,1092,1081,374,28,
            201,211,200,203,204,205,206,207,262,378,
            189,189,189,1556,601,597,598,599,2736,3243,
            3509,8899,8899,8899,213,3305,237,249,739,8899,
            673,8899,3989,202,236,246,247,248,250,651,
            8899,8899,8899,55,673,55,8899,223,1404,673,
            1404,8899,3194,354,1292,356,378,55,189,663,
            1250,1556,1404,8899,8899,8899,2411,201,209,200,
            203,204,205,206,207,262,189,189,189,3989,
            1556,2365,8899,8899,3409,2736,3948,3228,8899,8899,
            189,213,4028,237,249,739,2144,8899,4027,2998,
            202,236,246,247,248,250,651,8899,8899,8899,
            8899,769,55,8899,8899,8899,673,4028,5164,8899,
            8899,3373,3507,652,597,598,599,2440,8899,8899,
            8899,6567,4339,2933,201,643,200,203,204,205,
            206,207,262,378,189,8899,8899,1556,601,597,
            598,599,2736,8899,600,597,598,599,213,266,
            237,249,739,2233,8899,5240,3989,202,236,246,
            247,248,250,651,8899,287,264,265,865,55,
            8899,8899,8899,673,1404,8899,545,8899,3609,8899,
            652,597,598,599,2504,8899,2184,8899,6567,541,
            8899,201,210,200,203,204,205,206,207,262,
            6054,189,189,8899,1556,601,597,598,599,2736,
            4036,600,597,598,599,213,266,237,249,739,
            2597,8899,5240,8899,202,236,246,247,248,250,
            651,8899,647,264,265,961,55,538,540,8899,
            673,1404,8899,8899,8899,8899,8899,652,597,598,
            599,2331,8899,2184,8899,8899,8899,8899,201,220,
            200,203,204,205,206,207,262,6054,189,189,
            55,1556,3185,8899,8899,1404,2736,4049,600,597,
            598,599,213,266,237,249,739,2100,94,5751,
            8899,202,236,246,247,248,250,651,8899,278,
            264,265,1057,189,8899,8899,8899,673,8899,8899,
            8899,2687,8899,8899,601,597,598,599,1971,8899,
            8899,8899,6567,8899,8899,201,3621,200,203,204,
            205,206,207,262,3305,189,8899,8899,1556,673,
            8899,8899,8899,2736,8899,600,597,598,599,213,
            8899,237,249,739,8899,96,5240,8899,202,236,
            246,247,248,250,651,378,8899,189,8899,1153,
            1556,8899,8899,8899,673,2411,8899,8899,8899,8899,
            55,3305,8899,2236,55,673,673,2184,3989,4028,
            2365,8899,201,225,200,203,204,205,206,207,
            262,368,189,8899,8899,1556,8899,8899,3047,8899,
            2736,378,378,189,189,378,213,1556,237,249,
            739,221,2411,8899,8899,202,236,246,247,248,
            250,651,8899,8899,7316,3989,1249,2365,3989,8899,
            8899,673,8899,8899,8899,55,8899,55,3305,55,
            4028,8899,673,673,1404,3096,8899,8899,543,201,
            219,200,203,204,205,206,207,262,8899,189,
            3978,8899,1556,8899,8899,1404,378,2736,378,378,
            189,189,189,213,1556,237,249,739,221,2411,
            4152,8899,202,236,246,247,248,250,651,3989,
            8899,7316,3989,193,2365,3789,8899,4845,35,985,
            424,5590,2688,8899,267,35,985,424,8899,596,
            272,296,3145,8899,8899,8899,201,228,200,203,
            204,205,206,207,652,597,598,599,8899,652,
            597,598,599,55,8899,8899,8899,8899,673,308,
            8899,1559,35,1154,32,6875,49,27,30,31,
            1092,1081,374,28,8899,8899,1509,47,8899,8899,
            266,8899,3790,8899,378,266,189,8899,600,597,
            598,599,8899,4050,221,8899,270,264,265,5847,
            8899,281,264,265,8899,8899,1085,7316,8899,8899,
            8899,8899,8899,5287,35,1154,32,5704,5000,27,
            30,31,1092,1081,374,28,8899,354,1292,356,
            2184,309,8899,350,1250,277,280,283,3924,678,
            601,597,598,599,368,3148,35,1154,32,5704,
            5000,27,30,31,1092,1081,374,28,8899,8899,
            3416,8899,8899,8899,2440,2058,8899,286,6567,8899,
            4028,8899,601,597,598,599,2779,8899,3833,354,
            1292,356,646,8899,8899,349,1250,600,597,598,
            599,600,597,598,599,8899,262,5070,6048,8899,
            8899,8899,5240,652,597,598,599,170,35,985,
            424,354,1292,356,239,249,739,349,1250,8899,
            8899,8899,238,246,247,248,250,651,8899,5070,
            8899,8899,8899,2184,8899,8899,8899,8899,8899,266,
            8899,8899,8899,8899,8899,8899,8899,367,8899,49,
            240,242,244,720,8899,284,264,265,8899,1509,
            7626,8899,8899,251,241,243,4394,35,1154,32,
            4746,6188,27,30,31,1092,1081,26,28,2049,
            296,25,23,50,2080,106,76,77,110,13,
            8899,6956,4394,35,1154,32,4746,8899,27,30,
            31,1092,1081,26,28,2049,296,25,23,50,
            2080,106,76,77,109,4394,35,1154,32,4746,
            8899,27,30,31,1092,1081,26,28,2049,296,
            25,23,50,2080,106,76,77,105,4270,35,
            1154,32,4746,8899,27,30,31,1092,1081,26,
            28,2049,296,25,23,50,2080,635,76,77,
            8899,2870,8899,8899,8899,4332,35,1154,32,4746,
            705,27,30,31,1092,1081,26,28,2049,296,
            25,23,50,2080,86,76,77,2279,652,597,
            598,599,4028,8899,8899,8899,8899,8899,8899,3978,
            8899,2440,8899,2370,1404,6567,8899,8899,4028,8899,
            8899,8899,8899,8899,458,35,985,424,262,8899,
            8899,8899,8899,8899,266,8899,8899,8899,600,597,
            598,599,193,8899,262,8899,239,249,739,5240,
            569,264,265,8899,238,246,247,248,250,651,
            8899,8899,239,249,739,8899,49,8899,8899,8899,
            238,246,247,248,250,651,1509,47,8899,8899,
            2184,8899,240,242,244,720,8899,8899,8899,8899,
            8899,8899,8899,8899,367,251,241,243,240,242,
            244,720,8899,4951,35,553,3557,8899,8899,8899,
            8899,251,241,243,2461,8899,272,296,7423,4028,
            8899,1223,4095,6956,8899,75,35,985,424,8899,
            652,597,598,599,8899,8899,8899,2630,8899,6956,
            4456,35,1154,32,4746,262,27,30,31,1092,
            1081,26,28,2049,296,25,23,50,2080,3238,
            76,77,8899,239,249,739,266,49,8899,8899,
            8899,238,246,247,248,250,651,1509,5313,8899,
            8899,8899,270,264,265,2188,2884,8899,8899,8899,
            4028,4028,8899,8899,8899,8899,8899,8899,3978,240,
            242,244,720,1404,8899,8899,1928,1231,8899,8899,
            3685,4028,251,241,243,4028,262,5164,8899,8899,
            8899,277,280,283,3924,678,8899,8899,3228,8899,
            8899,193,8899,4028,239,249,739,262,2728,8899,
            6956,5164,238,246,247,248,250,651,8899,3489,
            8899,8899,8899,8899,673,239,249,739,8899,5164,
            8899,8899,8899,238,246,247,248,250,651,8899,
            240,242,244,720,8899,8899,2552,8899,8899,8899,
            2562,4028,189,580,241,243,8899,8899,8899,8899,
            2736,240,242,244,720,8899,213,2643,395,562,
            563,568,4028,8899,252,241,243,262,8899,8899,
            8899,4151,8899,8899,3943,3180,3183,8899,8899,8899,
            8899,8899,541,8899,8899,239,249,739,262,8899,
            8899,8899,8899,238,246,247,248,250,651,229,
            541,8899,8899,8899,8899,8899,239,249,739,8899,
            170,35,985,424,238,246,247,248,250,651,
            2734,240,242,244,720,4028,8899,8899,8899,8899,
            538,540,8899,8899,671,241,243,8899,8899,8899,
            8899,2825,240,242,244,720,4028,8899,539,540,
            8899,262,49,8899,8899,670,241,243,8899,8899,
            8899,8899,1509,1761,8899,3616,8899,8899,8899,239,
            249,739,262,8899,8899,8899,8899,238,246,247,
            248,250,651,1676,8899,8899,8899,7100,4028,8899,
            239,249,739,8899,170,35,985,424,238,246,
            247,248,250,651,2916,240,242,244,720,4028,
            8899,8899,8899,8899,262,8899,8899,8899,669,241,
            243,5782,230,8899,8899,3007,240,242,244,720,
            4028,8899,2686,443,7329,262,49,8899,8899,581,
            241,243,8899,8899,8899,8899,1509,1077,8899,8899,
            2867,8899,8899,239,249,739,262,8899,8899,8899,
            8899,238,246,247,248,250,651,3782,444,445,
            446,720,8899,8899,239,249,739,600,597,598,
            599,8899,238,246,247,248,250,651,5240,240,
            242,244,720,8899,600,597,598,599,8899,8899,
            8899,8899,340,241,243,6157,2561,8899,8899,8899,
            240,242,244,720,8899,8899,8899,8899,8899,2312,
            8899,8899,8899,535,241,243,2963,35,1154,32,
            5704,5000,27,30,31,1092,1081,374,28,1487,
            35,1154,32,5704,4128,27,30,31,1092,1081,
            374,28,2351,8899,8899,8899,6567,4028,8899,8899,
            8899,8899,8899,8899,8899,8899,8899,8899,8899,1802,
            8899,447,449,7100,4028,8899,8899,8899,8899,600,
            597,598,599,5164,2351,8899,439,8899,6567,4028,
            5240,8899,354,1292,356,8899,8899,8899,349,1250,
            262,738,8899,8899,7359,351,1164,356,8899,8899,
            3617,600,597,598,599,5164,8899,8899,2686,443,
            7329,2184,5240,8899,8899,8899,458,35,985,424,
            8899,8899,8899,3446,8899,367,8899,6567,8899,8899,
            8899,8899,8899,8899,8899,8899,2440,8899,8899,8899,
            6567,8899,8899,2184,444,445,446,720,8899,7423,
            600,597,598,599,395,8899,8899,367,49,8899,
            8899,5240,8899,600,597,598,599,8899,1509,47,
            3732,3180,3183,8899,5240,8899,8899,8899,8899,8899,
            8899,4605,2561,8899,3305,8899,395,8899,8899,673,
            8899,8899,2184,75,35,985,424,8899,1063,8899,
            8899,8899,3732,3180,3183,2184,368,651,35,985,
            424,8899,706,8899,8899,378,8899,189,8899,367,
            1556,8899,8899,8899,387,2411,1718,35,985,424,
            8899,381,2557,2320,384,49,8899,8899,3989,8899,
            2365,8899,8899,4605,8899,1509,47,447,450,49,
            458,35,985,424,75,35,985,424,3786,1509,
            47,8899,75,35,985,424,8899,8899,49,75,
            35,985,424,8899,8899,788,8899,8899,1509,2315,
            8899,75,35,985,424,75,35,985,424,1274,
            2230,8899,49,8899,8899,8899,49,8899,8899,8899,
            8899,8899,1509,2316,49,8899,1509,47,799,8899,
            8899,49,2528,8899,1509,47,8899,600,597,598,
            599,1509,47,49,8899,8899,3077,49,5751,8899,
            2867,8899,4555,1509,47,8899,1294,1509,47,600,
            597,598,599,8899,1725,170,35,985,424,8899,
            5751,2640,3786,600,597,598,599,600,597,598,
            599,4109,8899,2750,5240,8899,4028,3360,5240,8899,
            8899,170,35,985,424,8899,8899,8899,8899,600,
            597,598,599,8899,8899,8899,8899,49,8899,8899,
            6048,8899,378,592,8899,3139,8899,1509,1125,2485,
            8899,8899,8899,8899,8899,8899,8899,8899,8899,8899,
            8899,8899,8899,49,8899,3989,8899,8899,8899,8899,
            8899,8899,2314,1509,1998,8899,8899,8899,8899,8899,
            8899,8899,8899,8899,8899,595,8899,8899,8899,8899,
            8899,8899,8899,8899,2325,8899,8899,8899,8899,8899,
            8899,8899,8899,8899,8899,8899,8899,8899,8899,8899,
            8899,8899,8899,8899,8899,8899,8899,8899,8899,8899,
            8899,8899,8899,8899,8899,8899,8899,8899,8899,8899,
            8899,8899,8899,8899,8899,8899,8899,8899,8899,8899,
            8899,8899,8899,8899,8899,8899,8899,8899,8899,8899,
            8899,8899,8899,8899,8899,8899,8899,8899,8899,8899,
            8899,8899,8899,8899,8899,8899,8899,8899,8899,8899,
            8899,8899,8899,8899,8899,8899,8899,8899,8899,8899,
            8899,8899,8899,8899,8899,8899,8899,8899,8899,8899,
            8899,8899,8899,8899,8899,8899,8899,8899,8899,8899,
            8899,8899,8899,8899,8899,8899,8899,8899,8899,8899,
            8899,8899,8899,8899,8899,8899,8899,8899,8899,8899,
            8899,8899,8899,8899,8899,8899,8899,8899,8899,8899,
            8899,8899,8899,8899,8899,8899,8899,8899,8899,8899,
            8899,4340,8899,0,1,263,813,0,537,6935,
            0,1,263,0,39,8914,0,39,8913,0,
            1,4619,0,1813,1,0,39,1,8914,0,
            39,1,8913,0,1,1156,0,1,826,0,
            263,253,0,9167,257,0,9166,257,0,848,
            257,0,923,257,0,957,257,0,9567,257,
            0,9272,257,0,9271,257,0,9194,257,0,
            9193,257,0,9192,257,0,9191,257,0,9190,
            257,0,9189,257,0,9188,257,0,9187,257,
            0,9167,258,0,9166,258,0,848,258,0,
            923,258,0,957,258,0,9567,258,0,9272,
            258,0,9271,258,0,9194,258,0,9193,258,
            0,9192,258,0,9191,258,0,9190,258,0,
            9189,258,0,9188,258,0,9187,258,0,9167,
            259,0,9166,259,0,848,259,0,923,259,
            0,957,259,0,9567,259,0,9272,259,0,
            9271,259,0,9194,259,0,9193,259,0,9192,
            259,0,9191,259,0,9190,259,0,9189,259,
            0,9188,259,0,9187,259,0,957,430,0,
            923,430,0,848,430,0,318,430,0,9167,
            260,0,9166,260,0,848,260,0,923,260,
            0,957,260,0,9567,260,0,9272,260,0,
            9271,260,0,9194,260,0,9193,260,0,9192,
            260,0,9191,260,0,9190,260,0,9189,260,
            0,9188,260,0,9187,260,0,318,323,0,
            9167,261,0,9166,261,0,848,261,0,923,
            261,0,957,261,0,9567,261,0,9272,261,
            0,9271,261,0,9194,261,0,9193,261,0,
            9192,261,0,9191,261,0,9190,261,0,9189,
            261,0,9188,261,0,9187,261,0,1278,423,
            0,8914
        };
    };

    public interface BaseAction1 {
        public final static char baseAction1[] = {
            48,0,8913,48,0,9167,650,0,9166,650,
            0,848,650,0,923,650,0,957,650,0,
            9567,650,0,9272,650,0,9271,650,0,9194,
            650,0,9193,650,0,9192,650,0,9191,650,
            0,9190,650,0,9189,650,0,9188,650,0,
            9187,650,0,9167,275,0,9166,275,0,848,
            275,0,923,275,0,957,275,0,9567,275,
            0,9272,275,0,9271,275,0,9194,275,0,
            9193,275,0,9192,275,0,9191,275,0,9190,
            275,0,9189,275,0,9188,275,0,9187,275,
            0,9206,275,0,9205,275,0,9204,275,0,
            9203,275,0,9202,275,0,9201,275,0,9200,
            275,0,9199,275,0,9198,275,0,9197,275,
            0,9196,275,0,9566,275,0,9565,275,0,
            39,275,8914,0,39,275,8913,0,8937,275,
            0,1,957,0,1,923,0,1,848,0,
            1,366,0,38,826,0,38,8914,0,38,
            8913,0,490,1713,0,476,2079,0,1278,29,
            0,8911,1,0,957,660,0,923,660,0,
            848,660,0,664,660,0,664,659,0,8962,
            75,0,8961,75,0,1834,75,0,4804,75,
            0,4679,75,0,5589,75,0,2088,353,0,
            1,662,0,1,480,0,494,1348,0,493,
            1669,0,35,33,0,47,37,0,537,2602,
            0,8937,1,263,0,39,1,263,0,263,
            452,0,1,1563,0,1,9206,0,1,9205,
            0,1,9204,0,1,9203,0,1,9202,0,
            1,9201,0,1,9200,0,1,9199,0,1,
            9198,0,1,9197,0,1,9196,0,1,9566,
            0,1,9565,0,8914,37,0,8913,37,0,
            43,8935,0,43,37,0,3549,91,0,32,
            34,0,8907,1,0,39,826,0,957,662,
            0,923,662,0,848,662,0,8911,419,0,
            8910,419,0,957,366,0,923,366,0,848,
            366,0,1,1435,0,1,1486,0,263,254,
            0,8909,441,0,8908,441,0,263,451,0,
            1,5647,0,1,6698,0,1,6725,0,1,
            2208,0,1,2287,0,1,2366,0,1,2445,
            0,1,2524,0,1,2603,0,1,3323,0,
            1,4236,0,1,8921,0,1,8920,0,1,
            8919,0,1,8918,0,1,8917,0,1,8916,
            0,1,8915,0,1,1572,0,1,1833,0,
            1,1970,0,1,1996,0,1,2026,0,1,
            3520,0,39,1,0,8911,649,419,0,8910,
            649,419,0,1,263,3227,0,8908,263,0,
            3228,263,0,8905,1,0,8904,1,0,5514,
            126,0,271,4337,0,424,32,0,423,29,
            0,957,481,0,923,481,0,848,481,0,
            8937,481,0,366,481,0,39,481,0,848,
            570,0,923,570,0,957,570,0,848,571,
            0,923,571,0,957,571,0,848,572,0,
            923,572,0,957,572,0,848,573,0,923,
            573,0,957,573,0,848,574,0,923,574,
            0,957,574,0,275,8914,0,275,8913,0,
            8935,45,0,37,45,0,8911,638,419,0,
            8910,638,419,0,8911,636,419,0,8910,636,
            419,0,8911,87,419,0,8910,87,419,0,
            1,92,0,3415,263,0,10,12,0,8937,
            1,0,648,637,0,9567,371,0,9272,371,
            0,9271,371,0,6140,100,0,8,10,12,
            0,3571,227,0,5514,128,0,5514,127,0,
            8914,2,37,0,8913,2,37,0,8914,36,
            0,8913,36,0,957,657,0,923,657,0,
            848,657,0,957,656,0,923,656,0,848,
            656,0,600,601,0,6948,103,0,3838,99,
            0,957,95,0,923,95,0,848,95,0,
            8937,95,0,366,95,0,39,95,0,8911,
            649,638,419,0,649,638,0,35,73,0,
            957,657,658,0,923,657,658,0,848,657,
            658,0,657,658,0,313,6340,0,3622,419,
            0,218,6239,0,8,12,0
        };
    };

    public final static char baseAction[] = new char[BaseAction0.baseAction0.length + BaseAction1.baseAction1.length];
    {
        int index = 0;
        System.arraycopy(BaseAction0.baseAction0, 0, baseAction, index, BaseAction0.baseAction0.length);
        index += BaseAction0.baseAction0.length;
        System.arraycopy(BaseAction1.baseAction1, 0, baseAction, index, BaseAction1.baseAction1.length);
    };
    @Override
    public final int baseAction(int index) { return baseAction[index]; }
    public final static char lhs[] = baseAction;
    @Override
    public final int lhs(int index) { return lhs[index]; };

    public interface TermCheck {
        public final static char termCheck[] = {0,
            0,1,2,3,4,5,6,7,8,9,
            10,11,12,13,14,15,16,17,18,19,
            20,21,22,23,24,25,26,27,28,29,
            30,31,32,33,34,35,36,37,38,39,
            40,41,42,43,44,45,46,47,48,49,
            50,51,52,53,0,55,56,57,58,59,
            60,61,62,63,64,65,0,67,68,69,
            4,71,72,0,0,1,2,77,78,79,
            0,81,82,10,0,85,86,87,88,89,
            10,91,92,93,94,95,0,1,2,3,
            4,5,6,7,8,9,10,11,12,13,
            14,15,16,17,18,19,20,21,22,23,
            24,25,26,27,28,29,30,31,32,33,
            34,35,36,37,38,39,40,41,42,43,
            44,45,46,47,48,49,50,51,52,53,
            66,55,56,57,58,59,60,61,62,63,
            64,65,0,67,68,69,0,71,72,0,
            1,2,0,77,78,79,4,81,82,106,
            107,85,86,87,88,89,0,91,92,93,
            94,95,0,1,2,3,4,5,6,7,
            8,9,10,11,12,13,14,15,16,17,
            18,19,20,21,22,23,24,25,26,27,
            28,29,30,31,32,33,34,35,36,37,
            38,39,40,41,42,43,44,45,46,47,
            48,49,50,51,52,53,80,55,56,57,
            58,59,60,61,62,63,64,65,0,67,
            68,69,76,71,72,0,0,1,2,77,
            78,79,0,81,82,10,0,85,86,87,
            88,89,0,91,92,93,94,95,0,1,
            2,3,4,5,6,7,8,9,10,11,
            12,13,14,15,16,17,18,19,20,21,
            22,23,24,25,26,27,28,29,30,31,
            32,33,34,35,36,37,38,39,40,41,
            42,43,44,45,46,47,48,49,50,51,
            52,53,66,55,56,57,58,59,60,61,
            62,63,64,65,82,67,68,69,0,71,
            72,0,1,2,0,77,78,79,10,8,
            82,106,107,85,86,87,88,89,0,91,
            92,93,94,95,0,1,2,3,4,5,
            6,7,8,9,10,11,12,13,14,15,
            16,17,18,19,20,21,22,23,24,25,
            26,27,28,29,30,31,32,33,34,35,
            36,37,38,39,40,41,42,43,44,45,
            46,47,48,49,50,51,52,53,0,55,
            56,57,58,59,60,61,62,63,64,65,
            12,67,68,69,76,71,72,0,1,2,
            0,77,78,79,106,107,82,0,0,85,
            86,87,88,89,0,91,92,93,94,95,
            0,1,2,3,4,5,6,7,8,9,
            10,11,12,13,14,15,16,17,18,19,
            20,21,22,23,24,25,26,27,28,29,
            30,31,32,33,34,35,36,37,38,39,
            40,41,42,43,44,45,46,47,48,49,
            50,51,52,53,66,55,56,57,58,59,
            60,61,62,63,64,65,79,67,68,69,
            76,71,72,0,1,2,0,77,78,79,
            0,0,82,3,3,85,86,87,88,89,
            0,91,92,93,94,95,0,1,2,3,
            4,5,6,7,8,9,10,11,12,13,
            14,15,16,17,18,19,20,21,22,23,
            24,25,26,27,28,29,30,31,32,33,
            34,35,36,37,38,39,40,41,42,43,
            44,45,46,47,48,49,50,51,52,53,
            70,55,56,57,58,59,60,61,62,63,
            64,65,72,67,68,69,0,71,72,3,
            0,1,2,77,78,79,0,1,82,103,
            0,85,86,87,88,89,10,91,92,93,
            94,95,0,1,2,3,4,5,6,7,
            8,9,10,11,12,13,14,15,16,17,
            18,19,20,21,22,23,24,25,26,27,
            28,29,30,31,32,33,34,35,36,37,
            38,39,40,41,42,43,44,45,46,47,
            48,49,50,51,52,53,80,55,56,57,
            58,59,60,61,62,63,64,65,0,67,
            68,69,0,71,72,0,1,2,0,77,
            78,79,0,0,82,3,0,85,86,87,
            88,89,102,91,92,93,94,95,0,1,
            2,3,4,5,6,7,8,9,10,11,
            12,13,14,15,16,17,18,19,20,21,
            22,23,24,25,26,27,28,29,30,31,
            32,33,34,35,36,37,38,39,40,41,
            42,43,44,45,46,47,48,49,50,51,
            52,53,70,55,56,57,58,59,60,61,
            62,63,64,65,0,67,68,69,0,71,
            72,0,100,101,3,77,78,79,100,101,
            82,0,99,85,86,87,88,89,105,91,
            92,93,94,95,0,1,2,3,4,5,
            6,7,8,9,10,11,12,13,14,15,
            16,17,18,19,20,21,22,23,24,25,
            26,27,28,29,30,31,32,33,34,35,
            36,37,38,39,40,41,42,43,44,45,
            46,47,48,49,50,51,52,53,0,55,
            56,57,58,59,60,61,62,63,64,65,
            12,67,68,69,0,71,72,3,100,101,
            0,77,78,79,0,0,82,3,0,85,
            86,87,88,89,103,91,92,93,94,95,
            0,1,2,3,4,5,6,7,8,9,
            10,11,12,13,14,15,16,17,18,19,
            20,21,22,23,24,25,26,27,28,29,
            30,31,32,33,34,35,36,37,38,39,
            40,41,42,43,44,45,46,47,48,49,
            50,51,52,53,66,55,56,57,58,59,
            60,61,62,63,64,65,0,67,68,69,
            0,71,72,0,0,0,3,77,78,79,
            0,0,82,3,99,85,86,87,88,89,
            105,91,92,93,94,95,0,1,2,3,
            4,5,6,7,8,9,10,11,12,13,
            14,15,16,17,18,19,20,21,22,23,
            24,25,26,27,28,29,30,31,32,33,
            34,35,36,37,38,39,40,41,42,43,
            44,45,46,47,48,49,50,51,52,53,
            76,55,56,57,58,59,60,61,62,63,
            64,65,0,67,68,69,0,71,72,3,
            100,101,98,77,78,79,0,0,82,104,
            99,85,86,87,88,89,105,91,92,93,
            94,95,0,1,2,3,4,5,6,7,
            8,9,10,11,12,13,14,15,16,17,
            18,19,20,21,22,23,24,25,26,27,
            28,29,30,31,32,33,34,35,36,37,
            38,39,40,41,42,43,44,45,46,47,
            48,49,50,51,52,53,70,55,56,57,
            58,59,60,61,62,63,64,65,0,67,
            68,69,0,71,72,0,1,2,0,77,
            78,79,0,0,82,13,99,85,86,87,
            88,89,105,91,92,93,94,95,0,1,
            2,3,4,5,6,7,8,9,10,11,
            12,13,14,15,16,17,18,19,20,21,
            22,23,24,25,26,27,28,29,30,31,
            32,33,34,35,36,37,38,39,40,41,
            42,43,44,45,46,47,48,49,50,51,
            52,53,70,55,56,57,58,59,60,61,
            62,63,64,65,0,67,68,69,0,71,
            72,0,0,1,2,77,78,79,0,0,
            82,0,4,85,86,87,88,89,0,91,
            92,93,94,95,0,1,2,3,4,5,
            6,7,8,9,10,11,12,0,1,2,
            3,4,5,6,7,8,9,10,54,12,
            41,27,28,0,30,31,32,33,34,35,
            36,37,38,39,40,0,42,43,44,45,
            46,0,1,2,3,4,5,6,7,8,
            9,10,0,12,83,84,75,0,1,2,
            66,67,0,0,70,8,9,73,74,75,
            76,83,84,79,80,81,41,83,84,0,
            0,1,2,76,4,5,6,7,0,54,
            96,97,98,99,100,101,102,103,104,105,
            106,107,108,109,110,111,112,113,114,115,
            116,117,118,119,120,121,28,76,66,0,
            126,127,128,0,1,2,3,4,5,6,
            7,8,9,10,11,12,0,1,2,3,
            4,0,80,80,8,9,0,11,96,97,
            27,28,129,30,31,32,33,34,35,36,
            37,38,39,40,0,42,43,44,45,46,
            108,109,110,111,112,113,114,115,116,117,
            118,119,46,0,1,2,3,4,0,66,
            67,8,9,70,0,54,73,74,75,76,
            54,122,79,80,81,11,83,84,0,1,
            2,3,4,5,6,7,8,9,54,96,
            97,98,99,100,101,102,103,104,105,106,
            107,108,109,110,111,112,113,114,115,116,
            117,118,119,120,121,0,1,2,0,126,
            127,128,0,1,2,3,4,5,6,7,
            8,9,10,75,12,13,14,15,16,17,
            18,19,20,21,22,23,24,25,26,27,
            28,29,30,31,32,33,34,35,36,37,
            38,39,40,41,42,43,44,45,0,47,
            48,49,50,51,52,53,0,55,56,57,
            58,59,60,61,62,63,64,65,0,1,
            2,127,77,78,72,0,1,2,3,4,
            5,6,7,8,9,10,11,12,13,14,
            15,16,17,18,19,20,21,22,23,24,
            25,26,27,28,29,30,31,32,33,34,
            35,36,37,38,39,40,0,0,1,2,
            4,46,54,0,1,2,3,4,80,54,
            0,8,9,3,11,0,80,62,63,64,
            65,0,0,68,69,10,71,12,0,1,
            2,76,0,5,6,7,81,5,6,7,
            0,1,2,0,4,90,14,15,16,17,
            18,19,20,21,22,23,24,25,26,27,
            28,0,30,31,32,33,34,35,36,37,
            38,39,40,70,77,78,0,74,123,124,
            125,0,1,2,3,4,5,6,7,8,
            9,10,11,12,13,14,15,16,17,18,
            19,20,21,22,23,24,25,26,27,28,
            29,30,31,32,33,34,35,36,37,38,
            39,40,0,102,0,1,2,46,4,5,
            6,7,0,11,10,54,12,76,0,0,
            1,2,4,62,63,64,65,8,9,68,
            69,0,71,0,0,0,3,76,0,5,
            6,7,81,5,6,7,0,1,2,31,
            4,90,14,15,16,17,18,19,20,21,
            22,23,24,25,26,27,28,0,30,31,
            32,33,34,35,36,37,38,39,40,123,
            124,125,70,81,123,124,125,0,1,2,
            3,4,5,6,7,8,9,10,11,12,
            13,14,15,16,17,18,19,20,21,22,
            23,24,25,26,27,28,29,30,31,32,
            33,34,35,36,37,38,39,40,0,0,
            0,1,2,46,4,5,6,7,0,11,
            10,54,12,5,6,7,0,1,2,62,
            63,64,65,122,0,68,69,11,71,5,
            6,7,0,1,2,3,4,0,81,0,
            8,9,0,0,5,6,7,90,5,6,
            7,27,28,54,30,31,32,33,34,35,
            36,37,38,39,40,67,27,28,0,30,
            31,32,33,34,35,36,37,38,39,40,
            0,1,0,67,42,43,129,0,1,2,
            3,4,5,6,7,8,9,10,11,12,
            13,14,15,16,17,18,19,20,21,22,
            23,24,25,26,27,28,29,30,31,32,
            33,34,35,36,37,38,39,40,0,0,
            0,1,0,46,5,6,7,5,6,7,
            11,54,0,1,2,0,1,2,66,62,
            63,64,65,8,0,68,69,27,71,27,
            28,0,30,31,32,33,34,35,36,37,
            38,39,40,0,0,46,0,90,5,6,
            7,0,0,1,2,3,4,5,6,7,
            8,9,10,0,12,41,54,0,70,54,
            27,28,73,30,31,32,33,34,35,36,
            37,38,39,40,0,41,129,0,1,2,
            3,4,5,6,7,8,9,10,11,12,
            13,14,15,16,17,18,19,20,21,22,
            23,24,25,26,27,28,29,30,31,32,
            33,34,35,36,37,38,39,40,76,0,
            0,80,0,46,5,6,7,5,6,7,
            0,54,0,3,0,0,4,3,3,62,
            63,64,65,66,0,68,69,73,71,27,
            28,0,30,31,32,33,34,35,36,37,
            38,39,40,31,13,108,109,90,0,1,
            2,3,4,5,6,7,8,9,10,11,
            12,13,14,15,16,17,18,19,20,21,
            22,23,24,25,26,27,28,29,30,31,
            32,33,34,35,36,37,38,39,40,0,
            66,0,1,2,46,4,5,6,7,68,
            0,10,54,12,4,5,6,7,0,0,
            62,63,64,65,0,0,68,69,4,71,
            0,1,2,0,4,5,6,7,0,81,
            10,11,12,0,11,123,124,125,90,0,
            1,2,3,4,5,6,7,8,9,10,
            11,12,13,14,15,16,17,18,19,20,
            21,22,23,24,25,26,27,28,29,30,
            31,32,33,34,35,36,37,38,39,40,
            66,66,0,1,2,46,4,5,6,7,
            75,83,84,54,74,62,0,74,0,76,
            4,62,63,64,65,0,0,68,69,0,
            71,96,97,4,5,6,7,0,98,10,
            81,12,5,6,7,27,28,0,30,90,
            0,1,2,3,4,5,6,7,8,9,
            10,11,12,13,14,15,16,17,18,19,
            20,21,22,23,24,25,26,27,28,29,
            30,31,32,33,34,35,36,37,38,39,
            40,66,66,0,1,2,46,4,5,6,
            7,0,76,10,54,12,5,6,7,0,
            0,0,62,63,64,65,0,0,68,69,
            73,71,5,6,7,0,0,11,0,1,
            2,81,4,5,6,7,27,28,0,30,
            90,0,1,2,3,4,5,6,7,8,
            9,10,11,12,13,14,15,16,17,18,
            19,20,21,22,23,24,25,26,27,28,
            29,30,31,32,33,34,35,36,37,38,
            39,40,54,66,73,0,0,46,3,0,
            74,5,6,7,0,54,0,3,73,83,
            84,0,0,62,63,64,65,0,98,68,
            69,4,71,27,28,0,30,31,32,33,
            34,35,36,37,38,39,40,0,1,2,
            104,90,0,1,2,3,4,5,6,7,
            8,9,10,11,12,13,14,15,16,17,
            18,19,20,21,22,23,24,25,26,27,
            28,29,30,31,32,33,34,35,36,37,
            38,39,40,66,73,73,75,0,46,83,
            84,54,5,6,7,0,54,0,3,0,
            0,0,1,0,62,63,64,65,83,84,
            68,69,11,71,27,28,0,30,31,32,
            33,34,35,36,37,38,39,40,0,1,
            2,0,90,0,1,2,3,4,5,6,
            7,8,9,10,11,12,13,14,15,16,
            17,18,19,20,21,22,23,24,25,26,
            27,28,29,30,31,32,33,34,35,36,
            37,38,39,40,75,74,73,0,0,46,
            83,84,54,5,6,7,0,54,0,0,
            0,5,6,7,0,62,63,64,65,83,
            84,68,69,103,71,27,28,0,30,31,
            32,33,34,35,36,37,38,39,40,42,
            43,0,0,90,0,1,2,3,4,5,
            6,7,8,9,10,11,12,13,14,15,
            16,17,18,19,20,21,22,23,24,25,
            26,27,28,29,30,31,32,33,34,35,
            36,37,38,39,40,75,0,73,0,0,
            46,5,6,7,5,6,7,0,54,0,
            3,0,0,0,3,0,62,63,64,65,
            83,84,68,69,11,71,27,28,0,30,
            31,32,33,34,35,36,37,38,39,40,
            42,43,0,0,90,0,1,2,3,4,
            5,6,7,8,9,10,11,12,13,14,
            15,16,17,18,19,20,21,22,23,24,
            25,26,27,28,29,30,31,32,33,34,
            35,36,37,38,39,40,0,74,73,80,
            75,46,0,1,2,3,4,11,0,54,
            8,9,0,75,0,3,0,62,63,64,
            65,98,0,68,69,11,71,108,109,110,
            111,112,113,114,115,116,117,118,119,0,
            1,2,46,0,0,90,0,1,2,3,
            4,5,6,7,8,9,10,11,12,13,
            14,15,16,17,18,19,20,21,22,23,
            24,25,26,27,28,29,30,31,32,33,
            34,35,36,37,38,39,40,73,74,0,
            0,75,46,54,0,0,1,2,3,4,
            54,11,8,8,9,83,84,0,62,63,
            64,65,104,0,68,69,0,71,5,6,
            7,5,6,7,80,0,1,2,3,4,
            0,0,0,8,9,10,90,12,13,14,
            15,16,17,18,19,20,21,22,23,24,
            25,26,0,0,29,0,1,2,3,4,
            5,6,7,8,9,70,41,42,43,44,
            45,81,47,48,49,50,51,52,53,0,
            55,56,57,58,59,60,61,0,1,2,
            3,4,5,6,7,8,9,72,0,0,
            75,3,77,78,0,1,2,3,4,11,
            11,80,8,9,10,11,12,13,14,15,
            16,17,18,19,20,21,22,23,24,25,
            26,76,0,29,0,1,2,3,4,5,
            6,7,8,9,0,41,42,43,44,45,
            98,47,48,49,50,51,52,53,0,55,
            56,57,58,59,60,61,67,0,70,0,
            12,67,74,0,0,0,1,2,3,4,
            13,77,78,8,9,10,11,12,13,14,
            15,16,17,18,19,20,21,22,23,24,
            25,26,0,0,29,0,1,2,76,4,
            76,0,0,8,9,4,41,42,43,44,
            45,54,47,48,49,50,51,52,53,62,
            55,56,57,58,59,60,61,0,1,2,
            66,4,67,0,0,8,9,72,75,0,
            1,2,3,4,11,11,81,8,9,10,
            11,12,13,14,15,16,17,18,19,20,
            21,22,23,24,25,26,73,66,29,0,
            1,2,3,4,5,6,7,8,9,46,
            41,42,43,44,45,0,47,48,49,50,
            51,52,53,0,55,56,57,58,59,60,
            61,67,0,0,11,103,67,5,6,7,
            0,72,0,1,2,3,4,0,0,0,
            8,9,10,0,12,13,14,15,16,17,
            18,19,20,21,22,23,24,25,26,46,
            0,29,0,1,2,0,4,5,6,7,
            5,6,7,41,42,43,44,45,73,47,
            48,49,50,51,52,53,73,55,56,57,
            58,59,60,61,0,0,1,2,3,4,
            5,6,7,0,72,10,0,12,70,77,
            78,0,1,2,3,4,54,11,75,8,
            9,10,0,12,13,14,15,16,17,18,
            19,20,21,22,23,24,25,26,0,102,
            29,0,1,2,41,122,5,6,7,11,
            0,10,41,42,43,44,45,54,47,48,
            49,50,51,52,53,70,55,56,57,58,
            59,60,61,0,1,2,54,4,0,73,
            74,8,9,72,46,0,1,0,77,78,
            0,1,2,3,4,54,11,0,8,9,
            10,0,12,13,14,15,16,17,18,19,
            20,21,22,23,24,25,26,0,0,29,
            0,1,2,0,4,0,41,54,8,9,
            0,41,42,43,44,45,0,47,48,49,
            50,51,52,53,66,55,56,57,58,59,
            60,61,0,1,2,0,1,2,0,74,
            0,0,72,5,6,7,0,77,78,0,
            1,2,3,4,54,0,0,8,9,10,
            11,12,13,14,15,16,17,18,19,20,
            21,22,23,24,25,26,66,80,29,76,
            0,76,66,3,0,0,54,3,3,54,
            41,42,43,44,45,11,47,48,49,50,
            51,52,53,122,55,56,57,58,59,60,
            61,70,96,97,0,0,67,0,3,0,
            3,72,0,1,2,3,4,13,11,0,
            8,9,10,11,12,13,14,15,16,17,
            18,19,20,21,22,23,24,25,26,0,
            70,29,3,73,70,75,0,73,74,75,
            0,1,2,41,42,43,44,45,54,47,
            48,49,50,51,52,53,62,55,56,57,
            58,59,60,61,0,1,2,3,4,70,
            0,74,8,9,10,11,12,13,14,15,
            16,17,18,19,20,21,22,23,24,25,
            26,0,0,29,54,0,5,6,7,0,
            5,6,7,11,0,41,42,43,44,45,
            0,47,48,49,50,51,52,53,0,55,
            56,57,58,59,60,61,0,0,0,127,
            0,67,0,1,2,3,4,11,11,130,
            8,9,10,0,12,13,14,15,16,17,
            18,19,20,21,22,23,24,25,26,0,
            0,29,0,0,0,73,74,3,98,0,
            66,11,46,41,42,43,44,45,0,47,
            48,49,50,51,52,53,76,55,56,57,
            58,59,60,61,67,0,1,2,3,4,
            96,97,70,8,9,10,76,12,13,14,
            15,16,17,18,19,20,21,22,23,24,
            25,26,104,0,29,66,83,84,66,0,
            102,0,3,73,11,66,41,42,43,44,
            45,81,47,48,49,50,51,52,53,0,
            55,56,57,58,59,60,61,0,80,0,
            0,1,2,3,4,0,0,72,8,9,
            10,12,12,13,14,15,16,17,18,19,
            20,21,22,23,24,25,26,0,0,29,
            0,0,0,3,3,0,0,74,11,11,
            0,41,42,43,44,45,11,47,48,49,
            50,51,52,53,0,55,56,57,58,59,
            60,61,0,66,0,0,1,2,3,4,
            0,0,72,8,9,10,0,12,13,14,
            15,16,17,18,19,20,21,22,23,24,
            25,26,0,0,29,67,0,0,0,3,
            0,74,67,11,11,0,41,42,43,44,
            45,0,47,48,49,50,51,52,53,0,
            55,56,57,58,59,60,61,0,0,0,
            0,1,2,3,4,0,0,72,8,9,
            10,0,12,13,14,15,16,17,18,19,
            20,21,22,23,24,25,26,0,0,29,
            67,0,0,0,3,0,74,0,11,11,
            3,41,42,43,44,45,76,47,48,49,
            50,51,52,53,0,55,56,57,58,59,
            60,61,0,0,0,0,1,2,3,4,
            0,0,72,8,9,10,0,12,13,14,
            15,16,17,18,19,20,21,22,23,24,
            25,26,0,0,29,0,3,0,3,0,
            0,74,74,11,0,0,41,42,43,44,
            45,76,47,48,49,50,51,52,53,0,
            55,56,57,58,59,60,61,0,1,2,
            3,4,0,0,80,8,9,10,0,12,
            13,14,15,16,17,18,19,20,21,22,
            23,24,25,26,83,84,29,0,54,0,
            0,0,0,0,0,0,0,0,41,42,
            43,44,45,81,47,48,49,50,51,52,
            53,0,55,56,57,58,59,60,61,0,
            1,2,3,4,0,0,0,8,9,10,
            0,12,13,14,15,16,17,18,19,20,
            21,22,23,24,25,26,0,0,29,0,
            0,0,0,0,0,0,0,0,0,0,
            41,42,43,44,45,0,47,48,49,50,
            51,52,53,0,55,56,57,58,59,60,
            61,0,1,2,3,4,0,0,0,8,
            9,10,0,12,13,14,15,16,17,18,
            19,20,21,22,23,24,25,26,0,0,
            29,0,0,0,0,0,0,0,0,0,
            0,0,41,42,43,44,45,0,47,48,
            49,50,51,52,53,0,55,56,57,58,
            59,60,61,0,1,2,3,4,0,0,
            0,8,9,10,0,12,13,14,15,16,
            17,18,19,20,21,22,23,24,25,26,
            0,0,29,0,0,0,0,0,0,0,
            0,0,0,0,41,42,43,44,45,0,
            47,48,49,50,51,52,53,0,55,56,
            57,58,59,60,61,0,1,2,3,4,
            0,0,0,8,9,10,0,12,13,14,
            15,16,17,18,19,20,21,22,23,24,
            25,26,0,0,29,0,0,0,0,0,
            0,0,0,0,0,0,41,42,43,44,
            45,0,47,48,49,50,51,52,53,0,
            55,56,57,58,59,60,61,0,1,2,
            3,4,0,0,0,8,9,10,0,12,
            13,14,15,16,17,18,19,20,21,22,
            23,24,25,26,0,0,29,0,0,0,
            0,0,0,0,0,0,0,0,41,42,
            43,44,45,0,47,48,49,50,51,52,
            53,0,55,56,57,58,59,60,61,0,
            1,2,3,4,0,0,0,8,9,10,
            0,12,13,14,15,16,17,18,19,20,
            21,22,23,24,25,26,0,0,29,0,
            0,0,0,0,0,0,0,0,0,0,
            41,42,43,44,45,0,47,48,49,50,
            51,52,53,0,55,56,57,58,59,60,
            61,0,1,2,3,4,0,0,0,8,
            9,10,0,12,13,14,15,16,17,18,
            19,20,21,22,23,24,25,26,0,0,
            29,3,0,0,0,0,8,0,10,0,
            12,0,41,42,43,44,45,0,47,48,
            49,50,51,52,53,0,55,56,57,58,
            59,60,61,0,0,0,0,0,0,0,
            42,43,44,45,0,47,0,0,0,1,
            2,3,4,5,6,7,8,9,10,0,
            12,0,0,0,66,0,0,0,70,0,
            0,73,0,75,0,77,78,0,80,0,
            0,83,84,0,0,0,0,0,0,0,
            0,0,0,0,96,97,0,99,100,101,
            102,103,104,0,106,107,108,0,110,111,
            112,113,114,115,116,117,118,119,70,0,
            0,0,1,2,126,4,5,6,7,0,
            0,0,0,0,13,14,15,16,17,18,
            19,20,21,22,23,24,25,26,27,28,
            29,30,31,32,33,34,35,36,37,38,
            39,40,0,0,0,0,0,0,0,0,
            0,0,0,0,0,1,2,0,4,5,
            6,7,0,62,63,64,65,13,14,15,
            16,17,18,19,20,21,22,23,24,25,
            26,27,28,29,30,31,32,33,34,35,
            36,37,38,39,40,0,0,0,0,0,
            0,0,0,0,0,0,0,0,1,2,
            0,0,5,6,7,0,62,63,64,65,
            13,14,15,16,17,18,19,20,21,22,
            23,24,25,26,27,28,0,30,31,32,
            33,34,35,36,37,38,39,40,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,1,2,0,0,5,6,7,0,62,
            63,64,65,13,14,15,16,17,18,19,
            20,21,22,23,24,25,26,27,28,0,
            30,31,32,33,34,35,36,37,38,39,
            40,0,1,2,3,4,5,6,7,8,
            9,10,11,12,0,0,0,0,0,0,
            0,0,62,63,64,65,0,0,27,28,
            0,30,31,32,33,34,35,36,37,38,
            39,40,0,0,0,0,0,46,0,0,
            1,2,3,4,5,6,7,8,9,10,
            11,12,0,0,0,0,0,66,0,0,
            0,70,0,0,0,74,27,28,0,30,
            31,32,33,34,35,36,37,38,39,40,
            0,0,0,0,0,46,0,0,1,2,
            3,4,5,6,7,8,9,10,11,12,
            0,66,0,0,0,0,67,0,0,70,
            75,0,0,74,27,28,0,30,31,32,
            33,34,35,36,37,38,39,40,0,0,
            0,96,97,46,0,0,1,2,3,4,
            5,6,7,8,9,10,11,12,0,66,
            0,0,0,0,0,120,121,70,75,0,
            0,74,27,28,0,30,31,32,33,34,
            35,36,37,38,39,40,0,0,0,96,
            97,46,0,0,1,2,3,4,5,6,
            7,0,0,10,0,12,0,0,0,0,
            0,0,0,120,121,70,0,0,0,74,
            27,28,0,30,31,32,33,34,35,36,
            37,38,39,40,0,0,0,0,0,0,
            0,0,0,1,2,3,4,5,6,7,
            0,0,10,0,12,0,0,1,2,3,
            4,0,0,70,8,9,73,11,75,27,
            28,0,30,31,32,33,34,35,36,37,
            38,39,40,0,1,2,3,4,5,6,
            7,8,9,10,0,12,0,1,2,3,
            4,5,6,7,8,9,10,0,12,0,
            3,0,70,0,0,73,0,75,0,66,
            0,0,0,0,0,0,70,0,75,73,
            74,75,0,0,0,0,80,0,1,2,
            3,4,5,6,7,8,9,0,11,96,
            97,44,45,0,98,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,120,121,0,0,70,0,0,
            0,0,0,46,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,126,0,128,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0
        };
    };
    public final static char termCheck[] = TermCheck.termCheck;
    @Override
    public final int termCheck(int index) { return termCheck[index]; }

    public interface TermAction {
        public final static char termAction[] = {0,
            8899,8635,7901,7901,7901,7894,7901,7901,7901,7901,
            7901,8765,7901,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,8639,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,39,8910,1709,836,
            8937,9107,1,115,8899,8194,8191,1,1,1179,
            8899,8906,3237,2129,423,2835,2653,2787,3225,5703,
            7630,3234,1507,3232,4791,3229,10,8768,8768,8768,
            8768,8768,8768,8768,8768,8768,8768,8768,8768,8768,
            8768,8768,8768,8768,8768,8768,8768,8768,8768,8768,
            8768,8768,8768,8768,8768,8768,8768,8768,8768,8768,
            8768,8768,8768,8768,8768,8768,8768,8768,8768,8768,
            8768,8768,8768,8768,8768,8768,8768,8768,8768,8768,
            8188,8768,8768,8768,8768,8768,8768,8768,8768,8768,
            8768,8768,420,8768,8768,8768,35,8768,8768,8899,
            8913,8914,8899,8768,8768,8768,1764,8768,8768,2050,
            1971,8768,8768,8768,8768,8768,484,8768,8768,8768,
            8768,8768,8,8789,8789,8789,8789,8789,8789,8789,
            8789,8789,8789,8789,8789,8789,8789,8789,8789,8789,
            8789,8789,8789,8789,8789,8789,8789,8789,8789,8789,
            8789,8789,8789,8789,8789,8789,8789,8789,8789,8789,
            8789,8789,8789,8789,8789,8789,8789,8789,8789,8789,
            8789,8789,8789,8789,8789,8789,1847,8789,8789,8789,
            8789,8789,8789,8789,8789,8789,8789,8789,8899,8789,
            8789,8789,1240,8789,8789,117,8899,12843,12189,8789,
            8789,8789,227,8789,8789,2129,490,8789,8789,8789,
            8789,8789,8899,8789,8789,8789,8789,8789,8899,8635,
            7901,7901,7901,7894,7901,7901,7901,7901,7901,8642,
            7901,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,8639,1,1,1,1,1,
            1,1,8364,1,1,1,1,1,1,1,
            1,1,1,1,8793,8910,1709,836,116,9107,
            1,8899,8913,8914,8899,1,1,1179,2129,1704,
            3237,2050,1971,2835,2653,2787,3225,5703,8899,3234,
            1507,3232,4791,3229,8899,8635,7901,7901,7901,7894,
            7901,7901,7901,7901,7901,8642,7901,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            8639,1,1,1,1,1,1,1,151,1,
            1,1,1,1,1,1,1,1,1,1,
            4638,8910,1709,836,9336,9107,1,48,8194,8191,
            8899,1,1,1179,2050,1971,3237,1,476,2835,
            2653,2787,3225,5703,464,3234,1507,3232,4791,3229,
            8899,8635,7901,7901,7901,7894,7901,7901,7901,7901,
            7901,8642,7901,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,8639,1,1,1,
            1,1,1,1,8367,1,1,1,1,1,
            1,1,1,1,1,1,1440,8910,1709,836,
            1485,9107,1,433,8913,8914,155,1,1,1179,
            353,8899,3237,8409,1008,2835,2653,2787,3225,5703,
            594,3234,1507,3232,4791,3229,8899,8635,7901,7901,
            7901,7894,7901,7901,7901,7901,7901,8642,7901,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,8639,1,1,1,1,1,1,1,
            1677,1,1,1,1,1,1,1,1,1,
            1,1,3623,8910,1709,836,346,9107,1,1491,
            8899,12843,12189,1,1,1179,8899,3469,3237,4387,
            153,2835,2653,2787,3225,5703,3189,3234,1507,3232,
            4791,3229,8899,8635,7901,7901,7901,7894,7901,7901,
            7901,7901,7901,8642,7901,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,8639,1,
            1,1,1,1,1,1,1352,1,1,1,
            1,1,1,1,1,1,1,1,8899,8910,
            1709,836,149,9107,1,327,8913,8914,129,1,
            1,1179,382,111,3237,2391,8899,2835,2653,2787,
            3225,5703,4499,3234,1507,3232,4791,3229,8899,8635,
            7901,7901,7901,7894,7901,7901,7901,7901,7901,8642,
            7901,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,8639,1,1,1,1,1,
            1,1,1677,1,1,1,1,1,1,1,
            1,1,1,1,8899,8910,1709,836,150,9107,
            1,8899,4923,4856,846,1,1,1179,4414,4292,
            3237,135,6626,2835,2653,2787,3225,5703,6652,3234,
            1507,3232,4791,3229,8899,8635,7901,7901,7901,7894,
            7901,7901,7901,7901,7901,8642,7901,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            8639,1,1,1,1,1,1,1,131,1,
            1,1,1,1,1,1,1,1,1,1,
            4717,8910,1709,836,8899,9107,1,1431,4923,4856,
            8899,1,1,1179,8899,114,3237,1379,29,2835,
            2653,2787,3225,5703,4458,3234,1507,3232,4791,3229,
            8899,8635,7901,7901,7901,7894,7901,7901,7901,7901,
            7901,8642,7901,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,8639,1,1,1,
            1,1,1,1,8370,1,1,1,1,1,
            1,1,1,1,1,1,8899,8910,1709,836,
            130,9107,1,8899,8899,157,2088,1,1,1179,
            8899,113,3237,5838,6626,2835,2653,2787,3225,5703,
            6652,3234,1507,3232,4791,3229,8899,8635,7901,7901,
            7901,7894,7901,7901,7901,7901,7901,8642,7901,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,8639,1,1,1,1,1,1,1,
            5971,1,1,1,1,1,1,1,1,1,
            1,1,8899,8910,1709,836,8899,9107,1,4337,
            4414,4292,3791,1,1,1179,355,112,3237,4265,
            6626,2835,2653,2787,3225,5703,6652,3234,1507,3232,
            4791,3229,8899,8635,7901,7901,7901,7894,7901,7901,
            7901,7901,7901,8642,7901,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,8639,1,
            1,1,1,1,1,1,1677,1,1,1,
            1,1,1,1,1,1,1,1,8899,8910,
            1709,836,337,9107,1,36,8813,8810,8899,1,
            1,1179,494,8899,3237,9235,6626,2835,2653,2787,
            3225,5703,6652,3234,1507,3232,4791,3229,8899,8635,
            7901,7901,7901,7894,7901,7901,7901,7901,7901,8642,
            7901,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,8639,1,1,1,1,1,
            1,1,8418,1,1,1,1,1,1,1,
            1,1,1,1,8899,8910,1709,836,8899,9107,
            1,141,326,1660,1660,1,1,1179,8899,631,
            3237,8899,1769,2835,2653,2787,3225,5703,121,3234,
            1507,3232,4791,3229,8899,8424,8424,8424,8424,8424,
            8424,8424,8424,8424,8424,8424,8424,8899,7920,7916,
            4619,7913,8343,8349,8346,826,1156,8352,1177,8352,
            2394,8424,8424,8899,8424,8424,8424,8424,8424,8424,
            8424,8424,8424,8424,8424,8899,8424,8424,8424,8424,
            8424,8899,7920,7916,4619,7913,8343,8349,8346,826,
            1156,8412,146,8412,879,958,7131,38,8361,8358,
            8424,8424,159,328,8424,8355,1156,8424,8424,8424,
            8424,879,958,8424,8424,8424,2845,8424,8424,583,
            323,8137,8137,3589,318,957,848,923,626,7110,
            8424,8424,8424,8424,8424,8424,8424,8424,8424,8424,
            8424,8424,8424,8424,8424,8424,8424,8424,8424,8424,
            8424,8424,8424,8424,8424,8424,9524,3589,5276,8899,
            8424,8424,8424,8899,8501,8501,8501,8501,8501,8501,
            8501,8501,8501,8501,8501,8501,1,7920,7916,7910,
            7913,8899,2574,3636,7927,7924,8899,8909,5199,4526,
            8501,8501,7893,8501,8501,8501,8501,8501,8501,8501,
            8501,8501,8501,8501,47,8501,8501,8501,8501,8501,
            760,5903,2495,2416,2337,2258,2179,2100,2021,1942,
            1863,1784,8908,1,7920,7916,7910,7913,8899,8501,
            8501,7927,7924,8501,8899,7026,8501,8501,8501,8501,
            7047,1,8501,8501,8501,8903,8501,8501,366,7907,
            7904,4619,1813,957,848,923,826,1156,909,8501,
            8501,8501,8501,8501,8501,8501,8501,8501,8501,8501,
            8501,8501,8501,8501,8501,8501,8501,8501,8501,8501,
            8501,8501,8501,8501,8501,8899,8913,8914,8899,8501,
            8501,8501,39,7907,7904,6318,1813,957,848,923,
            4236,1156,2445,9447,2524,1071,9565,9566,9198,9196,
            9205,9204,9200,9201,9199,9202,9203,9206,9197,9271,
            9272,6890,9567,9193,9187,9194,9190,9166,9192,9191,
            9188,9189,9167,8918,2366,2287,3323,2603,405,2208,
            1833,2026,8920,1970,6725,1996,403,8921,8919,1572,
            8915,8916,8917,6698,9333,4751,9334,9335,37,8427,
            8427,8902,5711,1711,1731,8899,8437,8437,263,8433,
            7901,7901,7901,263,263,263,8441,263,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,8899,8899,8194,8191,
            2094,263,8935,1,7920,7916,5568,7913,1525,8430,
            632,826,1156,2482,8645,8899,1579,1,1,1,
            1,133,8899,4075,837,7240,9347,5084,333,8913,
            8914,263,257,957,848,923,452,7945,7939,7942,
            8899,7907,7904,8899,8937,9435,9565,9566,9198,9196,
            9205,9204,9200,9201,9199,9202,9203,9206,9197,7954,
            7951,8899,7948,7960,7978,7957,7969,7936,7963,7966,
            7975,7972,7933,1677,5711,1711,475,8648,9370,9371,
            9372,8899,8437,8437,263,8433,7901,7901,7901,263,
            263,263,8549,263,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,4565,480,8415,8415,263,8415,8415,
            8415,8415,493,8504,8415,8430,8415,5770,39,8899,
            8913,8914,8937,1,1,1,1,826,1156,4075,
            837,8899,9347,619,333,8899,2801,263,570,957,
            848,923,451,8687,8681,8684,8899,7907,7904,2470,
            8937,9435,9565,9566,9198,9196,9205,9204,9200,9201,
            9199,9202,9203,9206,9197,9271,9272,8899,9567,9193,
            9187,9194,9190,9166,9192,9191,9188,9189,9167,9370,
            9371,9372,8421,8906,9370,9371,9372,8899,7901,7901,
            263,7901,7894,7901,7901,263,263,263,7930,263,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,13025,1,13044,1,1,13756,1,8899,37,
            481,8678,8678,263,8672,8663,8669,8666,665,8911,
            8675,7898,8675,957,848,923,8899,8913,8914,1,
            1,1,1,3581,258,3958,836,8911,9144,7993,
            7987,7990,1,7920,7916,4619,7913,8899,253,259,
            826,1156,118,348,8041,8035,8038,9435,957,848,
            923,8002,7999,8935,7996,8008,8026,8005,8017,7984,
            8011,8014,8023,8020,7981,8910,8050,8047,8899,8044,
            8056,8074,8053,8065,8032,8059,8062,8071,8068,8029,
            8899,3687,8899,8910,1892,1127,253,8899,7901,7901,
            263,7901,7894,7901,7901,263,263,263,263,263,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,13025,1,13044,1,1,13756,1,383,8899,
            608,9508,260,263,8872,8880,8876,8101,8095,8098,
            8884,7898,8899,8489,8486,37,8427,8427,2090,1,
            1,1,1,8427,8899,3958,836,9509,9144,8110,
            8107,8899,8104,8116,8134,8113,8125,8092,8119,8122,
            8131,8128,8089,261,8899,8884,8899,9435,8152,8146,
            8149,544,8899,8834,8834,8834,8834,8834,8834,8834,
            8834,8834,8834,8899,8834,2016,8935,139,1677,1919,
            8161,8158,8884,8155,8167,8185,8164,8176,8143,8170,
            8173,8182,8179,8140,343,2394,254,8899,7901,7901,
            263,7901,7894,7901,7901,263,263,263,263,263,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,13025,1,13044,1,1,13756,1,8834,431,
            8899,5972,650,263,957,848,923,8209,8203,8206,
            91,7898,39,8498,606,1,8937,1298,5738,1,
            1,1,1,1180,8899,3958,836,4755,9144,8218,
            8215,337,8212,8224,8242,8221,8233,8200,8227,8230,
            8239,8236,8197,1382,9235,4000,5839,9435,8899,7901,
            7901,263,7901,7894,7901,7901,263,263,263,8540,
            263,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,13025,1,13044,1,1,13756,1,8899,
            1758,92,8762,8762,263,8762,8762,8762,8762,1076,
            431,8762,7898,8762,424,957,848,923,145,8899,
            1,1,1,1,432,8899,3958,836,423,9144,
            1,8624,8624,8899,8771,8343,8349,8346,8899,254,
            366,398,366,8899,8905,9370,9371,9372,9435,8899,
            7901,7901,263,7901,7894,7901,7901,263,263,263,
            8540,263,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,13025,1,13044,1,1,13756,1,
            1278,5276,659,8388,8388,263,664,957,848,923,
            5595,879,958,7898,398,2554,8899,8904,371,2004,
            2934,1,1,1,1,8899,29,3958,836,39,
            9144,5199,4526,8937,957,848,923,654,398,366,
            254,366,957,848,923,8783,8780,629,8777,9435,
            8899,7901,7901,263,7901,7894,7901,7901,263,263,
            263,8540,263,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,13025,1,13044,1,1,13756,
            1,4160,1278,95,8858,8858,263,8852,8843,8849,
            8846,662,460,8855,7898,8855,8510,8516,8513,371,
            393,551,1,1,1,1,8899,431,3958,836,
            2235,9144,957,848,923,190,137,8905,430,8086,
            8086,254,318,8077,8083,8080,9271,9272,8899,9567,
            9435,8899,7901,7901,263,7901,7894,7901,7901,263,
            263,263,263,263,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,13025,1,13044,1,1,
            13756,1,318,1278,1098,271,571,263,8654,8899,
            8904,8696,8690,8693,8899,7898,144,5116,2700,879,
            958,8899,485,1,1,1,1,48,9291,3958,
            836,8914,9144,9271,9272,142,9567,9193,9187,9194,
            9190,9166,9192,9191,9188,9189,9167,43,8495,8495,
            4343,9435,8899,7901,7901,263,7901,7894,7901,7901,
            263,263,263,263,263,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,13025,1,13044,1,
            1,13756,1,8914,6978,3174,7215,572,263,879,
            958,8492,8705,8699,8702,8899,7898,640,6250,8899,
            156,8899,2403,397,1,1,1,1,879,958,
            3958,836,8905,9144,9271,9272,639,9567,9193,9187,
            9194,9190,9166,9192,9191,9188,9189,9167,8899,13519,
            13519,8899,9435,8899,7901,7901,263,7901,7894,7901,
            7901,263,263,263,263,263,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,13025,1,13044,
            1,1,13756,1,3250,8904,1272,120,573,263,
            879,958,8935,8714,8708,8711,653,7898,8899,8899,
            8899,957,848,923,320,1,1,1,1,879,
            958,3958,836,4387,9144,9271,9272,125,9567,9193,
            9187,9194,9190,9166,9192,9191,9188,9189,9167,1892,
            1127,8899,8899,9435,8899,7901,7901,263,7901,7894,
            7901,7901,263,263,263,263,263,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,13025,1,
            13044,1,1,13756,1,3272,366,9218,119,574,
            263,8525,8531,8528,8723,8717,8720,8899,7898,139,
            6317,8899,8899,1,6999,8899,1,1,1,1,
            879,958,3958,836,398,9144,9271,9272,8899,9567,
            9193,9187,9194,9190,9166,9192,9191,9188,9189,9167,
            1892,1127,8899,8899,9435,8899,7901,7901,263,7901,
            7894,7901,7901,263,263,263,263,263,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,13025,
            1,13044,1,1,13756,1,8899,398,6978,3245,
            3619,263,1,7920,7916,4619,7913,8909,158,7898,
            826,1156,8899,3273,8899,6413,8899,1,1,1,
            1,398,124,3958,836,8905,9144,4000,5839,3196,
            3147,3098,3049,3000,2951,2902,2853,2803,2754,45,
            8735,8735,8908,8899,542,9435,8899,7901,7901,263,
            7901,7894,7901,7901,263,263,263,263,263,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            13025,1,13044,1,1,13756,1,797,8904,8899,
            8899,3274,263,8732,8899,1,7920,7916,5568,7913,
            7898,8907,1704,826,1156,879,958,8899,1,1,
            1,1,4265,661,3958,836,366,9144,957,848,
            923,957,848,923,6254,1,7920,7916,3520,1813,
            8899,456,8899,4236,1156,2445,9435,2524,8444,8483,
            8480,8471,8477,8450,8453,8465,8462,8468,8459,8456,
            8447,8474,1,8899,5647,1,7920,7916,4619,7913,
            8343,8349,8346,826,1156,1677,8918,2366,2287,3323,
            2603,8906,2208,1833,2026,8920,1970,6725,1996,8899,
            8921,8919,1572,8915,8916,8917,6698,1,7920,7916,
            4619,7913,8343,8349,8346,826,1156,1731,1,1,
            552,3937,39,39,1,7920,7916,8621,7913,8645,
            8373,3737,8582,7924,8570,8911,8573,8444,8483,8480,
            8471,8477,8450,8453,8465,8462,8468,8459,8456,8447,
            8474,3589,8899,8552,1,7920,7916,4619,7913,8343,
            8349,8346,826,1156,8899,8594,8567,8564,8579,8576,
            9293,8561,8609,8618,8588,8612,8558,8615,152,8585,
            8591,8606,8603,8600,8597,8555,8910,1,1677,8899,
            4638,8910,8648,8899,8899,39,7907,7904,6318,1813,
            8534,8624,8624,4236,1156,2445,8890,2524,1563,9565,
            9566,9198,9196,9205,9204,9200,9201,9199,9202,9203,
            9206,9197,8899,326,5647,8899,7907,7904,5837,1813,
            3589,48,136,826,1156,8913,8918,2366,2287,3323,
            2603,3188,2208,1833,2026,8920,1970,6725,1996,8537,
            8921,8919,1572,8915,8916,8917,6698,8899,7907,7904,
            4830,1813,8522,441,1,826,1156,1731,9390,39,
            7907,7904,6318,1813,8543,8911,8906,4236,1156,2445,
            8519,2524,1563,9565,9566,9198,9196,9205,9204,9200,
            9201,9199,9202,9203,9206,9197,10894,8913,5647,662,
            7907,7904,4619,1813,957,848,923,826,1156,8546,
            8918,2366,2287,3323,2603,462,2208,1833,2026,8920,
            1970,6725,1996,8899,8921,8919,1572,8915,8916,8917,
            6698,8910,655,410,8909,4458,8522,957,848,923,
            8899,1731,174,7907,7904,6318,1813,154,100,8899,
            4236,1156,2445,8899,2524,1563,9565,9566,9198,9196,
            9205,9204,9200,9201,9199,9202,9203,9206,9197,8908,
            8899,5647,660,8385,8385,453,664,8376,8382,8379,
            957,848,923,8918,2366,2287,3323,2603,1824,2208,
            1833,2026,8920,1970,6725,1996,5005,8921,8919,1572,
            8915,8916,8917,6698,8899,380,39,39,3937,8937,
            957,848,923,1,1731,366,8899,366,8786,39,
            39,614,7907,7904,6318,1813,664,8905,9376,4236,
            1156,2445,1,2524,1563,9565,9566,9198,9196,9205,
            9204,9200,9201,9199,9202,9203,9206,9197,1,4499,
            5647,37,8427,8427,765,3581,957,848,923,8909,
            8899,366,8918,2366,2287,3323,2603,765,2208,1833,
            2026,8920,1970,6725,1996,1677,8921,8919,1572,8915,
            8916,8917,6698,8899,7907,7904,727,1813,8899,1628,
            8904,8507,1156,1731,8908,8899,3631,8899,39,39,
            1,7920,7916,3520,1813,8935,8905,8899,4236,1156,
            2445,582,2524,8444,8483,8480,8471,8477,8450,8453,
            8465,8462,8468,8459,8456,8447,8474,8899,8899,5647,
            8899,7907,7904,1,1813,8899,3588,1048,8507,1156,
            8899,8918,2366,2287,3323,2603,148,2208,1833,2026,
            8920,1970,6725,1996,5304,8921,8919,1572,8915,8916,
            8917,6698,37,8427,8427,8899,8806,8802,657,8904,
            8899,99,1731,8816,8822,8819,8899,39,39,39,
            7907,7904,6318,1813,1511,8899,8899,4236,1156,2445,
            8519,2524,1563,9565,9566,9198,9196,9205,9204,9200,
            9201,9199,9202,9203,9206,9197,1278,1847,5647,2,
            1,3690,5276,3937,1,8899,1609,3937,5905,8935,
            8918,2366,2287,3323,2603,376,2208,1833,2026,8920,
            1970,6725,1996,3581,8921,8919,1572,8915,8916,8917,
            6698,8840,5199,4526,1,8899,8522,8899,5917,100,
            1626,1731,39,7907,7904,6318,1813,8534,8905,218,
            4236,1156,2445,8903,2524,1563,9565,9566,9198,9196,
            9205,9204,9200,9201,9199,9202,9203,9206,9197,8899,
            1677,5647,6039,576,1677,576,8899,376,376,376,
            8899,14804,14755,8918,2366,2287,3323,2603,3188,2208,
            1833,2026,8920,1970,6725,1996,8537,8921,8919,1572,
            8915,8916,8917,6698,39,7907,7904,6318,1813,8786,
            1,8904,4236,1156,2445,8519,2524,1563,9565,9566,
            9198,9196,9205,9204,9200,9201,9199,9202,9203,9206,
            9197,656,8899,5647,8935,454,8825,8831,8828,8899,
            957,848,923,8905,147,8918,2366,2287,3323,2603,
            8899,2208,1833,2026,8920,1970,6725,1996,138,8921,
            8919,1572,8915,8916,8917,6698,1,649,134,8902,
            8899,8522,39,7907,7904,6318,1813,224,8627,8893,
            4236,1156,2445,123,2524,1563,9565,9566,9198,9196,
            9205,9204,9200,9201,9199,9202,9203,9206,9197,8899,
            8899,5647,8899,8899,8899,6315,8904,6106,4189,73,
            5276,8907,224,8918,2366,2287,3323,2603,8899,2208,
            1833,2026,8920,1970,6725,1996,3294,8921,8919,1572,
            8915,8916,8917,6698,8631,39,7907,7904,6318,1813,
            5199,4526,1670,4236,1156,2445,5904,2524,1563,9565,
            9566,9198,9196,9205,9204,9200,9201,9199,9202,9203,
            9206,9197,4343,8899,5647,1180,879,958,2483,8899,
            4565,8899,6340,1245,8905,8869,8918,2366,2287,3323,
            2603,8906,2208,1833,2026,8920,1970,6725,1996,8899,
            8921,8919,1572,8915,8916,8917,6698,2,3471,132,
            39,7907,7904,3520,1813,8899,8899,1731,4236,1156,
            2445,4717,2524,1563,9565,9566,9198,9196,9205,9204,
            9200,9201,9199,9202,9203,9206,9197,1,638,5647,
            8899,103,8899,6759,8837,636,8899,8904,194,8738,
            8899,8918,2366,2287,3323,2603,8746,2208,1833,2026,
            8920,1970,6725,1996,8899,8921,8919,1572,8915,8916,
            8917,6698,8899,37,8899,39,7907,7904,3520,1813,
            8899,8899,1731,4236,1156,2445,8899,2524,1563,9565,
            9566,9198,9196,9205,9204,9200,9201,9199,9202,9203,
            9206,9197,1,87,5647,8742,8899,8899,8899,6319,
            8899,194,8750,196,8754,8899,8918,2366,2287,3323,
            2603,8899,2208,1833,2026,8920,1970,6725,1996,8899,
            8921,8919,1572,8915,8916,8917,6698,8899,8899,8899,
            39,7907,7904,6318,1813,8899,8899,1731,4236,1156,
            2445,8899,2524,1563,9565,9566,9198,9196,9205,9204,
            9200,9201,9199,9202,9203,9206,9197,1,1,5647,
            8758,8899,8899,8899,1326,8899,196,313,590,8905,
            8887,8918,2366,2287,3323,2603,3373,2208,1833,2026,
            8920,1970,6725,1996,546,8921,8919,1572,8915,8916,
            8917,6698,8899,8899,8899,39,7907,7904,5735,1813,
            8899,122,1731,4236,1156,2445,8899,2524,1563,9565,
            9566,9198,9196,9205,9204,9200,9201,9199,9202,9203,
            9206,9197,8,103,5647,8899,8837,8899,7661,8899,
            8899,590,8904,8896,1,8899,8918,2366,2287,3323,
            2603,3422,2208,1833,2026,8920,1970,6725,1996,8899,
            8921,8919,1572,8915,8916,8917,6698,39,7907,7904,
            5885,1813,8899,8899,722,4236,1156,2445,8899,2524,
            1563,9565,9566,9198,9196,9205,9204,9200,9201,9199,
            9202,9203,9206,9197,879,958,5647,8899,755,8899,
            8899,8899,8899,8899,8899,8899,8899,8899,8918,2366,
            2287,3323,2603,8896,2208,1833,2026,8920,1970,6725,
            1996,8899,8921,8919,1572,8915,8916,8917,6698,39,
            7907,7904,6204,1813,8899,8899,8899,4236,1156,2445,
            8899,2524,1563,9565,9566,9198,9196,9205,9204,9200,
            9201,9199,9202,9203,9206,9197,8899,8899,5647,8899,
            8899,8899,8899,8899,8899,8899,8899,8899,8899,8899,
            8918,2366,2287,3323,2603,8899,2208,1833,2026,8920,
            1970,6725,1996,8899,8921,8919,1572,8915,8916,8917,
            6698,39,7907,7904,6251,1813,8899,8899,8899,4236,
            1156,2445,8899,2524,1563,9565,9566,9198,9196,9205,
            9204,9200,9201,9199,9202,9203,9206,9197,8899,8899,
            5647,8899,8899,8899,8899,8899,8899,8899,8899,8899,
            8899,8899,8918,2366,2287,3323,2603,8899,2208,1833,
            2026,8920,1970,6725,1996,8899,8921,8919,1572,8915,
            8916,8917,6698,39,7907,7904,6318,1813,8899,8899,
            8899,4236,1156,2445,8899,2524,1563,9565,9566,9198,
            9196,9205,9204,9200,9201,9199,9202,9203,9206,9197,
            8899,8899,5647,8899,8899,8899,8899,8899,8899,8899,
            8899,8899,8899,8899,8918,2366,2287,3323,2603,8899,
            2208,1833,2026,8920,1970,6725,1996,8899,8921,8919,
            1572,8915,8916,8917,6698,39,7907,7904,7484,1813,
            8899,8899,8899,4236,1156,2445,8899,2524,1563,9565,
            9566,9198,9196,9205,9204,9200,9201,9199,9202,9203,
            9206,9197,8899,8899,5647,8899,8899,8899,8899,8899,
            8899,8899,8899,8899,8899,8899,8918,2366,2287,3323,
            2603,8899,2208,1833,2026,8920,1970,6725,1996,8899,
            8921,8919,1572,8915,8916,8917,6698,39,7907,7904,
            3520,1813,8899,8899,8899,4236,1156,2445,8899,2524,
            1563,9565,9566,9198,9196,9205,9204,9200,9201,9199,
            9202,9203,9206,9197,8899,8899,5647,8899,8899,8899,
            8899,8899,8899,8899,8899,8899,8899,8899,8918,2366,
            2287,3323,2603,8899,2208,1833,2026,8920,1970,6725,
            1996,8899,8921,8919,1572,8915,8916,8917,6698,39,
            7907,7904,3520,1813,8899,8899,8899,4236,1156,2445,
            8899,2524,1563,9565,9566,9198,9196,9205,9204,9200,
            9201,9199,9202,9203,9206,9197,8899,8899,5647,8899,
            8899,8899,8899,8899,8899,8899,8899,8899,8899,8899,
            8918,2366,2287,3323,2603,8899,2208,1833,2026,8920,
            1970,6725,1996,8899,8921,8919,1572,8915,8916,8917,
            6698,39,7907,7904,6318,1813,8899,8899,8899,4236,
            1156,2445,8899,2524,1563,9565,9566,9198,9196,9205,
            9204,9200,9201,9199,9202,9203,9206,9197,1,8899,
            5647,1730,8899,8899,8899,8899,9404,8899,9398,8899,
            9402,8899,8918,2366,2287,3323,2603,8899,2208,1833,
            2026,8920,1970,6725,1996,8899,8921,8919,1572,8915,
            8916,8917,6698,8899,8899,8899,8899,8899,8899,8899,
            9396,9397,9427,9428,8899,9405,8899,8899,380,7907,
            7904,5568,1813,957,848,923,826,1156,366,8899,
            366,8899,8899,8899,9407,8899,8899,8899,1062,8899,
            8899,9429,8899,9408,8899,2239,2263,8899,9406,8899,
            8899,9418,9417,8899,8899,8899,8899,8899,8899,8899,
            8899,8899,8899,8899,9423,9424,8899,9430,9421,9422,
            9401,9403,9425,8899,9399,9400,9426,8899,9411,9412,
            9413,9409,9410,9419,9420,9415,9414,9416,1677,8899,
            8899,8899,7907,7904,9431,8937,957,848,923,8899,
            8899,8899,8899,8899,810,9565,9566,9198,9196,9205,
            9204,9200,9201,9199,9202,9203,9206,9197,9271,9272,
            5243,9567,9193,9187,9194,9190,9166,9192,9191,9188,
            9189,9167,8899,8899,8899,8899,8899,8899,8899,8899,
            8899,8899,8899,8899,275,8336,8332,8899,8340,8257,
            8251,8254,8899,9333,4751,9334,9335,810,8329,8326,
            8317,8323,8296,8299,8311,8308,8314,8305,8302,8293,
            8320,8266,8263,5243,8260,8272,8290,8269,8281,8248,
            8275,8278,8287,8284,8245,8899,8899,8899,8899,8899,
            8899,8899,8899,8899,8899,8899,8899,8899,8913,8914,
            8899,8899,957,848,923,8899,9333,4751,9334,9335,
            1655,9565,9566,9198,9196,9205,9204,9200,9201,9199,
            9202,9203,9206,9197,9271,9272,8899,9567,9193,9187,
            9194,9190,9166,9192,9191,9188,9189,9167,8899,8899,
            8899,8899,8899,8899,8899,8899,8899,8899,8899,8899,
            275,8729,8726,8899,8899,8257,8251,8254,8899,9333,
            4751,9334,9335,1655,8329,8326,8317,8323,8296,8299,
            8311,8308,8314,8305,8302,8293,8320,8266,8263,8899,
            8260,8272,8290,8269,8281,8248,8275,8278,8287,8284,
            8245,29,423,423,8660,423,423,423,423,423,
            423,8660,8660,8660,8899,8899,8899,8899,8899,8899,
            8899,8899,9333,4751,9334,9335,8899,8899,423,423,
            8899,423,423,423,423,423,423,423,423,423,
            423,423,8899,8899,8899,126,8899,8660,8899,638,
            649,649,649,649,649,649,649,649,649,8866,
            8861,8866,8899,8899,8899,8899,8899,8370,8899,8899,
            8899,8660,8899,8899,8899,8660,649,649,8899,649,
            649,649,649,649,649,649,649,649,649,649,
            8899,8899,8899,128,8899,8866,8899,32,424,424,
            8657,424,424,424,424,424,424,8657,8657,8657,
            8899,5541,8899,8899,8899,8899,8522,8899,8899,649,
            8651,8899,8899,8866,424,424,8899,424,424,424,
            424,424,424,424,424,424,424,424,8899,8899,
            8899,5487,5460,8657,8899,637,648,648,648,648,
            648,648,648,648,648,8774,8774,8774,8899,5541,
            8899,8899,8899,8899,8899,5433,5406,8657,8796,8899,
            8899,8657,648,648,8899,648,648,648,648,648,
            648,648,648,648,648,648,8899,8899,8899,5487,
            5460,8774,8899,37,8914,8914,8914,8914,8914,8914,
            8914,8899,8899,8914,8899,8914,8899,8899,8899,8899,
            8899,8899,8899,5433,5406,648,8899,8899,8899,8774,
            8914,8914,8899,8914,8914,8914,8914,8914,8914,8914,
            8914,8914,8914,8914,8899,8899,8899,8899,8899,8899,
            8899,8899,37,8913,8913,8913,8913,8913,8913,8913,
            8899,8899,8913,127,8913,8899,1,7920,7916,5568,
            7913,8899,8899,8914,826,1156,8914,402,8914,8913,
            8913,8899,8913,8913,8913,8913,8913,8913,8913,8913,
            8913,8913,8913,344,7920,7916,4619,7913,8343,8349,
            8346,826,1156,8352,8899,8352,8899,7920,7916,4619,
            7913,8343,8349,8346,826,1156,8412,75,8412,8899,
            8403,8899,8913,8899,8899,8913,8899,8913,8899,5541,
            8899,8899,8899,8899,8899,8899,1677,8899,8799,402,
            402,402,8899,8899,8899,8899,1458,1,7920,7916,
            4619,7913,8343,8349,8346,826,1156,8899,344,5487,
            5460,8394,8391,8899,402,8899,8899,8899,8899,8899,
            8899,8899,8899,8899,8899,8899,8899,8899,8899,8899,
            8899,8899,8899,5433,5406,8899,8899,8406,8899,8899,
            8899,8899,8899,344,8899,8899,8899,8899,8899,8899,
            8899,8899,8899,8899,8899,8899,8899,8899,8899,8899,
            8899,8899,8899,8899,8899,8899,8899,8899,8899,8899,
            8899,8899,8899,8899,8899,8899,8899,8899,8899,8899,
            8899,8899,8899,8899,8899,8899,8899,8899,8899,8899,
            8899,8899,8899,8397,8899,8400
        };
    };
    public final static char termAction[] = TermAction.termAction;
    @Override
    public final int termAction(int index) { return termAction[index]; }

    public interface Asb {
        public final static char asb[] = {0,
            1315,1,1306,11,287,1353,687,687,687,1262,
            8,870,1314,94,853,736,1177,736,736,736,
            1190,200,1190,867,1190,878,1190,1190,94,856,
            1190,1171,814,3,1353,1250,1109,1190,1190,19,
            856,1190,856,736,750,103,103,424,103,637,
            200,872,326,872,856,854,14,734,527,1046,
            98,869,533,867,198,94,878,259,856,856,
            685,96,814,814,814,814,814,814,814,814,
            814,814,1111,814,1048,736,750,750,750,750,
            94,736,1190,557,557,634,571,203,203,1253,
            758,633,1250,1250,856,932,528,259,259,1190,
            470,528,1190,1190,750,1190,856,683,960,114,
            103,103,102,102,200,94,856,854,692,546,
            691,347,527,733,528,98,856,554,1163,552,
            685,200,538,856,259,685,856,679,1048,1048,
            1048,1048,1002,286,683,1190,528,528,528,774,
            939,793,793,287,287,287,287,856,483,531,
            531,483,813,557,200,94,571,426,1250,1190,
            856,813,1068,1250,571,679,1190,1190,259,259,
            1253,470,470,854,960,114,102,102,102,856,
            634,634,14,634,1364,1046,950,949,526,541,
            856,98,1161,870,750,852,1367,98,554,553,
            557,554,557,685,538,538,856,424,289,85,
            591,596,593,1048,401,399,406,404,408,407,
            409,473,410,423,856,96,856,528,528,528,
            528,470,286,813,1190,775,1253,956,211,210,
            689,600,598,607,605,609,608,610,611,696,
            1196,1196,94,1111,814,528,528,424,424,424,
            424,685,528,813,853,855,853,528,470,200,
            738,856,736,470,624,1250,1257,528,541,200,
            1250,571,1260,1190,424,424,1190,528,215,935,
            214,423,750,333,333,541,541,102,856,857,
            528,347,528,482,528,528,683,1369,557,557,
            557,557,856,538,540,742,540,59,72,72,
            72,72,54,94,814,814,814,814,814,814,
            814,747,814,814,814,814,814,814,814,814,
            814,814,814,813,813,813,813,813,813,813,
            813,813,813,813,813,814,793,679,1190,1190,
            1190,1069,814,287,1190,1190,528,774,1161,814,
            1161,634,773,736,736,736,775,736,856,887,
            634,634,856,200,939,528,958,960,813,814,
            814,814,814,814,814,814,814,814,814,814,
            814,813,813,813,813,813,813,813,813,813,
            813,813,1116,814,856,683,1200,1048,736,736,
            736,736,856,856,856,855,683,544,94,856,
            483,541,1068,1190,1190,561,813,212,212,954,
            1253,219,114,103,114,422,422,541,634,528,
            950,854,633,814,1161,572,752,630,1369,557,
            557,339,540,541,814,856,856,593,593,591,
            591,591,814,399,399,399,596,596,404,401,
            401,407,406,408,1161,409,528,1190,1253,764,
            775,1161,859,775,793,793,791,773,793,634,
            634,578,772,528,960,598,598,598,598,598,
            598,605,600,600,608,607,609,1161,1161,610,
            685,854,528,813,813,813,813,736,736,96,
            856,854,544,528,1068,1190,353,561,813,813,
            958,935,114,287,287,482,634,1369,814,814,
            630,630,1369,1369,738,149,340,856,541,685,
            862,813,1190,1190,1190,813,1190,775,814,775,
            528,1250,528,791,1353,736,528,544,580,528,
            813,813,856,363,528,528,528,528,483,483,
            1312,1190,96,765,736,540,1190,564,423,630,
            630,339,856,94,94,856,856,1190,483,814,
            470,775,578,775,634,1353,813,775,772,580,
            580,1233,528,528,1312,219,1190,154,564,324,
            856,856,856,1190,528,470,813,773,483,634,
            528,583,580,528,528,1247,1190,1190,736,333,
            856,856,775,528,634,583,583,200,200,1249,
            961,422,775,583,950,853,287
        };
    };
    public final static char asb[] = Asb.asb;
    @Override
    public final int asb(int index) { return asb[index]; }

    public interface Asr {
        public final static char asr[] = {0,
            129,0,11,76,67,79,0,41,54,0,
            3,28,0,11,76,74,41,0,29,78,
            77,42,43,106,107,102,103,8,47,80,
            66,113,114,110,111,112,118,117,119,84,
            83,115,116,100,101,96,97,104,108,44,
            45,99,126,13,63,62,64,65,17,26,
            16,22,20,21,23,24,19,18,25,14,
            15,32,38,39,34,37,36,31,33,27,
            28,30,35,40,75,73,5,12,10,6,
            7,3,70,1,2,4,0,123,124,125,
            76,81,9,11,3,12,10,8,46,71,
            68,90,69,14,15,30,5,32,16,17,
            62,27,18,63,33,34,19,35,36,20,
            21,37,38,22,23,39,64,54,40,13,
            65,24,25,28,26,29,6,7,1,2,
            4,31,0,77,78,72,44,45,12,10,
            42,43,8,47,52,61,29,3,4,9,
            58,59,60,41,56,50,55,14,15,17,
            26,16,22,20,21,23,24,19,18,25,
            13,49,53,51,48,57,81,1,2,67,
            11,0,5,79,76,46,67,6,7,3,
            70,75,80,73,11,74,98,0,14,15,
            30,5,32,16,17,62,27,18,63,33,
            34,19,35,36,20,21,37,38,22,23,
            39,64,40,13,65,24,31,25,28,26,
            1,2,4,29,6,7,98,0,48,77,
            49,50,78,9,51,52,53,55,72,56,
            57,58,59,60,41,44,45,12,10,42,
            43,8,47,75,61,3,29,4,13,1,
            2,63,64,65,14,15,17,26,16,22,
            20,21,23,24,19,18,25,32,38,39,
            34,37,36,31,33,27,28,30,5,7,
            6,35,40,62,0,5,11,67,6,7,
            80,0,75,80,73,1,2,0,31,1,
            2,4,123,124,125,0,11,73,74,1,
            27,0,72,79,128,126,44,45,76,98,
            127,81,33,34,35,36,37,9,38,39,
            40,31,28,1,2,70,3,27,32,8,
            4,5,30,6,7,105,99,42,43,106,
            107,120,121,10,74,46,67,11,84,83,
            66,96,97,100,101,12,102,103,104,108,
            109,110,111,112,113,114,115,116,117,118,
            119,80,73,75,0,77,78,3,13,49,
            53,51,48,57,17,26,16,22,20,21,
            23,24,19,18,25,14,15,58,59,60,
            41,56,50,55,8,9,4,44,45,12,
            10,42,43,47,52,61,29,1,2,127,
            11,0,5,75,76,98,127,81,46,6,
            7,73,14,15,16,17,48,77,18,49,
            50,19,20,21,78,9,51,22,23,52,
            53,55,72,56,57,13,24,25,26,58,
            59,60,2,3,44,45,12,10,42,43,
            8,47,4,29,61,41,1,74,11,0,
            9,8,54,1,2,4,0,1,2,73,
            81,11,0,122,0,11,76,73,74,3,
            0,4,66,6,7,5,11,76,67,0,
            30,27,28,72,79,75,76,98,74,67,
            3,5,11,73,46,6,7,80,0,30,
            27,28,72,11,75,98,80,73,74,0,
            105,99,10,106,107,42,43,84,83,66,
            96,97,120,121,100,101,12,102,103,104,
            75,74,80,110,111,112,113,114,115,116,
            117,118,119,76,98,127,81,108,109,6,
            7,5,73,46,11,0,14,15,30,32,
            16,17,62,27,18,63,33,90,34,19,
            35,36,20,21,37,68,38,22,23,39,
            64,40,13,65,24,69,31,25,28,26,
            3,12,4,46,29,71,67,11,5,10,
            6,7,9,8,1,2,54,0,127,46,
            73,74,11,76,0,14,15,30,5,32,
            16,17,27,18,33,34,19,35,36,20,
            21,37,9,38,22,23,39,40,24,31,
            25,28,26,2,70,12,10,8,4,46,
            6,7,1,74,11,3,0,11,67,73,
            0,11,73,81,80,0,75,96,97,66,
            0,76,5,70,6,7,66,11,73,46,
            80,3,0,74,90,123,124,125,54,76,
            129,122,130,81,71,79,69,68,85,87,
            94,92,82,89,91,93,95,67,86,88,
            46,11,63,62,64,65,32,38,39,34,
            37,36,31,33,27,28,30,5,7,6,
            35,40,72,77,78,49,53,51,48,57,
            3,17,26,16,22,20,21,23,24,19,
            18,25,14,15,58,59,60,41,56,50,
            55,44,45,12,10,42,43,47,52,61,
            29,13,4,9,8,2,1,0,76,98,
            0,74,11,84,83,0,54,4,76,1,
            2,11,67,6,7,5,0,4,11,67,
            6,7,5,1,2,0,14,15,16,17,
            48,77,18,49,50,19,20,21,78,9,
            51,22,23,52,53,55,72,56,57,13,
            24,25,26,58,59,60,41,1,2,3,
            44,45,42,43,8,47,4,29,61,46,
            11,10,12,0,98,9,8,80,75,5,
            1,2,12,10,4,6,7,70,3,74,
            11,73,0,8,9,3,70,10,12,98,
            14,15,30,5,32,16,17,62,27,18,
            63,33,34,19,35,36,20,21,37,38,
            22,23,39,64,40,13,65,24,31,25,
            28,26,1,2,4,29,6,7,74,11,
            0,77,78,44,45,12,10,42,43,8,
            47,52,61,29,3,4,9,58,59,60,
            56,50,55,14,15,17,26,16,22,20,
            21,23,24,19,18,25,13,49,53,51,
            48,57,70,1,2,41,0,30,5,32,
            62,27,63,33,34,35,36,37,38,39,
            64,40,65,31,28,6,7,72,44,45,
            12,10,42,43,47,52,61,29,3,4,
            58,59,60,41,56,50,55,14,15,17,
            26,16,22,20,21,23,24,19,18,25,
            13,49,53,51,48,57,67,11,9,8,
            1,2,78,77,0,14,15,16,17,48,
            77,18,49,50,19,20,21,78,9,51,
            22,23,52,53,55,72,56,57,13,24,
            25,26,58,59,60,41,1,2,3,44,
            45,12,10,42,43,8,47,4,29,61,
            76,0,4,11,76,67,6,7,5,0,
            29,13,63,62,64,65,17,26,16,22,
            20,21,23,24,19,18,25,14,15,79,
            76,98,127,81,67,128,126,44,45,105,
            99,42,43,106,107,83,84,66,75,96,
            97,100,101,102,103,104,108,109,80,110,
            111,112,113,114,115,116,117,118,119,73,
            120,121,30,32,27,33,34,35,36,37,
            38,39,40,31,28,46,11,74,70,8,
            9,3,12,1,2,4,6,7,5,10,
            0,17,62,27,18,63,33,19,35,20,
            21,37,38,22,23,64,40,65,24,31,
            25,28,26,16,32,30,29,15,14,11,
            3,12,10,46,69,90,34,39,36,71,
            66,6,7,5,54,9,1,2,4,13,
            68,8,0,81,14,15,30,32,16,17,
            62,27,18,63,33,19,35,20,21,37,
            38,22,23,64,40,13,65,24,31,25,
            28,26,29,129,71,68,34,39,36,90,
            69,54,5,11,12,46,6,7,8,9,
            2,4,3,1,10,0,46,11,3,9,
            8,76,12,10,4,1,2,6,7,5,
            0
        };
    };
    public final static char asr[] = Asr.asr;
    @Override
    public final int asr(int index) { return asr[index]; }

    public interface Nasb {
        public final static char nasb[] = {0,
            288,13,21,19,5,319,13,13,13,301,
            13,170,301,238,238,13,274,13,13,13,
            275,250,275,163,275,163,275,13,11,240,
            275,267,62,154,156,233,195,13,13,48,
            180,13,240,13,13,301,301,13,301,224,
            250,163,13,286,277,277,42,35,74,13,
            154,210,238,286,16,238,286,154,240,12,
            13,13,62,62,62,62,62,62,62,62,
            62,62,240,176,150,13,13,13,13,13,
            238,13,13,154,120,208,163,68,68,328,
            14,13,191,280,240,13,35,154,154,37,
            96,35,13,13,13,13,12,46,154,154,
            301,301,154,154,250,238,174,195,35,13,
            13,89,34,13,35,311,211,163,163,13,
            277,250,154,277,23,31,211,104,150,150,
            150,150,62,98,46,13,35,35,35,86,
            166,1,152,339,339,339,339,240,183,114,
            114,183,153,120,140,55,286,91,191,286,
            240,83,60,157,163,227,163,163,23,23,
            328,96,96,195,308,308,288,288,154,277,
            208,208,42,208,13,42,35,13,35,87,
            240,208,13,173,13,21,318,311,163,163,
            154,286,154,31,154,181,12,13,199,166,
            13,13,13,145,13,13,13,13,13,13,
            13,62,13,13,211,13,12,35,35,35,
            35,96,339,83,248,214,328,165,68,68,
            13,13,13,13,13,13,13,13,13,13,
            13,13,11,240,62,35,35,13,13,13,
            13,45,35,62,194,240,194,35,96,140,
            13,277,13,96,13,281,163,35,154,250,
            280,286,13,154,13,13,334,35,13,231,
            13,13,13,77,77,87,87,288,174,13,
            35,89,35,62,35,35,46,156,154,154,
            100,100,211,181,108,13,13,274,275,275,
            275,275,293,11,62,62,62,62,62,62,
            62,13,62,62,62,62,62,62,62,62,
            62,62,62,62,62,62,62,62,62,62,
            62,62,62,62,153,62,23,104,248,248,
            248,243,62,339,154,126,35,220,13,133,
            13,208,13,13,13,13,221,13,181,206,
            208,208,181,52,332,35,326,154,62,62,
            62,62,62,62,62,62,62,62,62,62,
            62,62,62,62,62,62,62,62,62,62,
            62,62,259,62,240,46,13,150,13,13,
            13,13,211,12,240,186,46,154,55,12,
            183,87,154,163,70,154,62,13,13,230,
            328,308,308,301,154,13,13,87,208,35,
            35,195,208,62,13,124,13,163,280,100,
            100,79,108,87,62,181,240,13,13,13,
            13,13,62,13,13,13,13,13,13,13,
            13,13,13,13,13,13,35,40,334,13,
            221,13,13,221,263,263,306,13,263,208,
            208,13,154,35,308,13,13,13,13,13,
            13,13,13,13,13,13,13,13,13,13,
            44,211,35,153,153,153,153,13,13,13,
            180,211,131,35,60,154,70,70,62,62,
            326,189,308,339,339,62,208,157,62,62,
            286,163,280,13,13,238,72,277,87,31,
            35,62,154,102,13,153,334,221,62,221,
            35,233,35,252,154,13,35,131,154,35,
            62,62,211,248,35,35,35,35,183,183,
            187,13,13,129,13,87,70,154,13,163,
            286,110,277,238,238,12,211,40,183,62,
            96,221,13,221,208,157,153,221,129,70,
            154,13,35,35,187,339,143,59,122,13,
            12,277,277,102,35,96,62,13,256,208,
            35,154,70,35,35,154,143,13,13,77,
            12,12,221,35,208,122,154,52,52,231,
            338,13,221,122,35,194,339
        };
    };
    public final static char nasb[] = Nasb.nasb;
    @Override
    public final int nasb(int index) { return nasb[index]; }

    public interface Nasr {
        public final static char nasr[] = {0,
            3,13,10,9,149,204,148,121,147,146,
            4,2,0,215,0,36,1,0,234,0,
            181,0,4,10,9,2,13,140,5,0,
            2,89,0,202,32,0,5,226,0,172,
            0,164,0,2,143,89,0,5,54,227,
            0,36,56,0,194,4,193,0,102,105,
            36,13,2,9,10,4,0,101,0,63,
            0,224,0,233,32,0,131,0,4,123,
            223,0,5,33,0,5,102,0,200,0,
            13,2,9,10,4,103,0,206,0,133,
            0,170,0,89,167,166,0,178,0,4,
            123,190,0,4,2,9,10,168,0,184,
            0,156,0,222,0,5,208,0,142,0,
            186,0,13,2,9,10,4,236,0,36,
            185,0,187,0,13,2,9,10,4,36,
            56,54,41,5,0,107,5,4,10,9,
            2,73,38,0,32,109,110,5,0,38,
            1,0,38,127,0,4,10,9,13,3,
            1,0,5,113,0,2,144,0,110,109,
            38,73,83,4,10,9,2,0,149,228,
            148,121,147,146,0,5,41,47,0,53,
            2,3,0,5,51,36,41,210,0,102,
            41,51,91,36,5,0,38,89,0,32,
            110,109,73,2,9,10,5,4,0,2,
            53,0,4,10,9,2,13,105,104,36,
            0,54,5,211,0,5,209,0,5,41,
            143,0,5,54,125,0,2,4,121,118,
            119,120,165,13,79,0,2,82,0,5,
            4,10,9,2,73,27,0,126,88,51,
            5,0,121,79,13,118,119,120,198,0,
            5,51,88,98,0,41,212,31,5,0,
            5,51,88,123,49,4,0,47,4,2,
            9,10,5,183,0,31,5,4,38,107,
            0,110,109,38,4,83,0,32,5,54,
            0
        };
    };
    public final static char nasr[] = Nasr.nasr;
    @Override
    public final int nasr(int index) { return nasr[index]; }

    public interface TerminalIndex {
        public final static char terminalIndex[] = {0,
            118,119,2,31,51,129,130,13,84,10,
            120,9,105,48,49,53,57,65,73,79,
            80,91,92,107,110,112,59,111,127,50,
            109,52,69,71,75,78,81,88,94,103,
            117,11,12,7,8,125,14,60,66,72,
            89,93,95,98,99,102,104,114,115,116,
            128,58,68,96,106,19,126,82,108,1,
            131,100,44,123,20,30,63,83,101,33,
            124,113,17,18,54,55,61,62,64,70,
            74,76,77,90,97,21,22,32,6,23,
            24,25,26,27,4,15,16,28,29,34,
            35,36,37,38,39,40,41,42,43,45,
            46,56,85,86,87,5,122,3,132,67,
            121
        };
    };
    public final static char terminalIndex[] = TerminalIndex.terminalIndex;
    @Override
    public final int terminalIndex(int index) { return terminalIndex[index]; }

    public interface NonterminalIndex {
        public final static char nonterminalIndex[] = {0,
            138,143,144,0,0,142,0,0,246,252,
            141,0,151,0,140,0,0,150,156,0,
            0,157,166,167,168,169,264,0,0,0,
            196,134,159,0,170,137,171,265,172,173,
            139,149,174,175,176,0,136,177,193,0,
            0,146,145,160,178,188,0,0,0,0,
            0,0,203,179,180,0,220,0,0,181,
            182,217,221,153,183,184,0,185,202,0,
            0,0,163,191,0,0,0,0,0,0,
            187,0,0,0,0,0,0,194,0,0,
            222,135,133,234,0,165,218,224,225,226,
            0,228,0,154,0,0,223,205,206,207,
            209,236,237,0,190,195,212,0,0,227,
            0,0,0,241,0,243,0,257,0,260,
            0,261,0,155,197,198,199,200,204,208,
            211,0,214,0,215,0,230,233,0,255,
            0,256,0,269,272,147,148,152,0,0,
            162,164,0,186,0,201,0,0,0,210,
            0,213,219,0,231,232,0,0,238,245,
            0,249,250,251,254,0,0,258,0,266,
            0,268,0,271,0,0,158,161,0,189,
            0,192,0,0,216,229,235,0,0,239,
            240,242,244,0,247,248,253,259,262,263,
            0,0,267,0,0,270,0,0,0,0,
            0,0,0,0
        };
    };
    public final static char nonterminalIndex[] = NonterminalIndex.nonterminalIndex;
    @Override
    public final int nonterminalIndex(int index) { return nonterminalIndex[index]; }

    public interface ScopePrefix {
        public final static char scopePrefix[] = {
            265,429,731,750,418,447,682,698,709,720,
            501,373,387,404,465,133,398,521,559,273,
            739,625,98,111,142,162,171,176,181,236,
            301,460,471,98,593,71,250,379,393,653,
            118,250,511,98,758,118,323,354,7,39,
            39,63,67,79,90,105,152,167,197,105,
            490,494,577,618,647,674,678,768,772,776,
            188,83,188,539,555,568,586,605,666,207,
            207,335,425,568,689,705,716,727,313,636,
            19,31,60,147,147,262,328,13,147,349,
            370,13,13,147,498,615,622,262,147,791,
            1,13,54,201,476,543,583,1,598,147,
            216,410,476,216,216,437,530,283,437,24,
            24,45,45,195,45,45,45,45,581,780,
            787,24,24,49,344,780,787,156,549,243,
            195,344,195,359
        };
    };
    public final static char scopePrefix[] = ScopePrefix.scopePrefix;
    @Override
    public final int scopePrefix(int index) { return scopePrefix[index]; }

    public interface ScopeSuffix {
        public final static char scopeSuffix[] = {
            94,241,43,43,241,241,43,43,43,43,
            508,241,186,241,103,139,384,527,565,279,
            158,631,103,116,116,116,150,150,186,241,
            306,109,109,103,43,76,255,384,192,658,
            129,258,516,745,763,123,317,317,11,43,
            43,43,43,43,94,109,43,150,186,109,
            186,186,241,352,43,43,43,43,43,352,
            789,87,192,508,508,508,590,609,658,211,
            225,339,413,572,693,693,693,693,317,640,
            22,22,43,150,150,43,43,331,333,352,
            43,11,11,333,186,43,352,43,651,43,
            4,16,57,204,479,546,57,612,601,670,
            211,413,661,219,230,454,533,286,440,29,
            37,47,96,186,482,484,486,488,186,782,
            782,26,34,51,346,784,784,158,551,245,
            308,339,293,361
        };
    };
    public final static char scopeSuffix[] = ScopeSuffix.scopeSuffix;
    @Override
    public final int scopeSuffix(int index) { return scopeSuffix[index]; }

    public interface ScopeLhs {
        public final static char scopeLhs[] = {
            49,120,18,18,87,120,18,18,18,18,
            94,100,50,87,119,85,60,94,93,49,
            18,20,198,3,7,8,190,190,189,118,
            49,119,119,150,55,28,104,61,50,168,
            161,104,94,18,18,161,111,66,84,165,
            19,19,199,163,97,198,193,190,189,150,
            213,58,56,172,19,18,18,18,18,18,
            12,142,189,94,93,93,77,46,168,122,
            122,83,87,93,18,18,18,18,111,20,
            134,155,17,194,190,215,109,117,68,101,
            67,183,84,150,95,173,172,206,168,17,
            18,84,92,189,150,125,92,22,55,168,
            122,87,168,122,122,120,94,49,120,134,
            155,204,228,189,176,148,147,146,90,166,
            53,134,155,236,83,166,53,193,125,118,
            49,83,49,66
        };
    };
    public final static char scopeLhs[] = ScopeLhs.scopeLhs;
    @Override
    public final int scopeLhs(int index) { return scopeLhs[index]; }

    public interface ScopeLa {
        public final static char scopeLa[] = {
            122,81,74,74,81,81,74,74,74,74,
            74,81,46,81,1,75,1,74,130,67,
            3,74,1,75,75,75,1,1,46,81,
            67,1,1,1,74,74,81,1,1,4,
            75,73,46,1,1,75,74,74,1,74,
            74,74,74,74,122,1,74,1,46,1,
            46,46,81,127,74,74,74,74,74,127,
            1,74,1,74,74,74,76,76,4,1,
            1,10,67,74,75,75,75,75,74,3,
            6,6,74,1,1,74,74,3,1,127,
            74,1,1,1,46,74,127,74,8,74,
            74,6,76,1,54,80,76,74,75,1,
            1,67,54,1,1,67,82,79,1,1,
            1,29,1,46,1,63,62,62,46,4,
            4,1,1,98,12,4,4,3,1,67,
            1,10,1,3
        };
    };
    public final static char scopeLa[] = ScopeLa.scopeLa;
    @Override
    public final int scopeLa(int index) { return scopeLa[index]; }

    public interface ScopeStateSet {
        public final static char scopeStateSet[] = {
            441,367,266,266,468,367,266,266,266,266,
            121,455,441,468,367,468,443,121,121,441,
            266,266,38,191,237,237,21,21,480,367,
            441,367,367,187,66,373,45,443,441,58,
            41,45,121,266,266,41,100,163,169,187,
            266,266,91,1,121,38,55,21,480,187,
            36,443,109,18,266,266,266,266,266,266,
            241,8,480,121,121,121,74,332,58,367,
            367,425,468,121,266,266,266,266,100,266,
            179,134,266,55,21,94,100,102,163,96,
            163,184,169,187,121,5,18,61,58,266,
            266,169,121,480,187,13,121,271,66,58,
            367,468,58,367,367,367,121,441,367,179,
            134,370,39,480,370,369,369,369,24,63,
            138,179,134,365,425,63,138,55,13,367,
            441,425,441,163
        };
    };
    public final static char scopeStateSet[] = ScopeStateSet.scopeStateSet;
    @Override
    public final int scopeStateSet(int index) { return scopeStateSet[index]; }

    public interface ScopeRhs {
        public final static char scopeRhs[] = {0,
            205,3,0,134,234,0,169,238,136,0,
            217,0,238,136,0,265,217,0,265,169,
            0,265,0,169,0,241,265,0,241,0,
            215,169,0,191,265,0,191,0,205,3,
            29,0,134,0,280,0,272,0,237,0,
            32,165,0,367,86,0,30,187,0,187,
            3,0,205,3,61,0,363,3,331,0,
            362,3,3,6,0,134,134,0,361,3,
            72,0,360,3,122,0,134,188,0,136,
            187,79,0,232,0,258,0,220,184,135,
            13,0,144,0,184,135,13,0,143,0,
            290,136,66,133,0,20,0,326,136,66,
            54,0,20,58,0,33,140,0,20,58,
            0,0,326,136,66,54,219,0,20,194,
            0,290,136,66,141,0,213,135,0,149,
            0,244,3,325,0,325,0,2,0,134,
            0,290,136,66,140,0,213,135,254,0,
            213,135,31,254,0,213,135,355,31,0,
            137,220,184,135,0,136,0,220,184,135,
            0,142,136,0,182,0,351,136,182,0,
            136,182,0,239,136,0,184,350,252,0,
            144,0,0,0,0,350,252,0,145,144,
            0,0,0,0,143,0,0,0,0,145,
            143,0,0,0,0,349,136,167,253,0,
            135,0,253,0,137,0,0,135,0,348,
            136,167,236,0,135,0,0,44,135,0,
            0,164,3,0,136,316,315,136,79,314,
            182,0,315,136,79,314,182,0,231,0,
            232,0,314,182,0,101,0,0,231,0,
            232,0,219,101,0,0,231,0,232,0,
            315,136,314,182,0,231,0,219,0,0,
            231,0,259,136,3,0,134,0,0,0,
            0,0,259,136,3,240,0,248,3,0,
            224,0,154,0,200,184,135,0,10,0,
            0,0,0,200,0,9,0,0,237,70,
            0,133,0,259,136,3,198,0,198,0,
            2,0,0,134,0,0,0,0,0,215,
            3,0,255,136,167,41,34,0,213,135,
            68,69,0,212,136,0,137,213,135,312,
            69,0,213,135,312,69,0,213,135,80,
            132,68,0,255,136,167,283,68,0,283,
            68,0,137,0,0,135,0,255,136,167,
            283,258,68,0,283,258,68,0,309,310,
            136,167,132,345,63,0,345,63,0,138,
            137,0,0,0,135,0,309,310,136,167,
            345,63,0,137,0,0,0,135,0,213,
            135,308,63,0,220,213,135,308,252,0,
            213,135,308,252,0,184,135,0,98,144,
            0,208,0,207,0,206,0,205,0,306,
            136,162,0,306,136,182,0,172,94,0,
            340,178,342,343,3,91,0,134,187,0,
            342,343,3,91,0,136,0,134,187,0,
            172,3,82,222,89,0,134,136,0,222,
            89,0,113,2,139,134,136,0,256,3,
            82,0,215,185,0,33,177,0,185,0,
            191,33,177,0,256,3,95,0,222,163,
            256,3,93,0,67,187,0,256,3,93,
            0,134,187,67,187,0,341,136,167,0,
            172,0,237,86,0,172,109,207,0,30,
            185,0,157,75,186,3,0,186,3,0,
            20,169,134,0,172,109,176,0,30,177,
            0,134,157,0,244,3,0,237,70,303,
            0,172,70,0,205,3,337,78,135,0,
            134,0,0,0,0,337,78,135,0,2,
            153,134,0,0,0,0,205,3,52,0,
            155,0,134,54,184,135,0,31,155,0,
            98,144,31,155,0,245,213,135,0,154,
            31,155,0,205,3,57,0,172,3,57,
            0,172,3,75,205,66,48,0,205,66,
            48,0,20,2,139,134,0,172,3,75,
            205,66,51,0,205,66,51,0,172,3,
            75,205,66,53,0,205,66,53,0,172,
            3,75,205,66,49,0,205,66,49,0,
            244,3,134,220,184,135,13,0,134,220,
            184,135,13,0,144,2,0,134,0,244,
            3,133,274,184,135,13,0,274,184,135,
            13,0,143,2,0,134,0,244,3,144,
            0,244,3,149,0,172,70,149,0,298,
            0,31,0,31,147,0,183,0,142,0,
            172,3,0
        };
    };
    public final static char scopeRhs[] = ScopeRhs.scopeRhs;
    @Override
    public final int scopeRhs(int index) { return scopeRhs[index]; }

    public interface ScopeState {
        public final static char scopeState[] = {0,
            2089,2077,2003,0,2154,1759,0,2894,2105,2563,
            2552,0,5782,6413,6317,6250,0,1385,998,0,
            1824,1485,0,6306,6239,6172,6105,6038,5971,5904,
            5837,5770,5703,5303,5101,6999,0,6853,4773,0,
            6960,6978,5947,0,1245,2364,1182,5680,2285,2206,
            2127,1516,1352,0,3174,1240,0,4804,1834,0,
            1711,0,1769,1764,0,760,4265,4499,4387,4923,
            4856,4638,3520,3294,1098,2574,2495,2416,2337,2258,
            2179,2100,2021,1942,1863,1784,1019,929,850,0,
            797,1626,0,796,0,2557,2320,1292,1250,4605,
            7423,4114,5568,5164,3937,5266,3989,0,3512,2691,
            7484,1179,2844,3520,2796,6318,6251,6204,5885,5735,
            6306,6239,6172,6105,6038,5971,5904,5837,5770,5703,
            5303,5101,0,3911,4755,3898,0,7585,7581,7569,
            7562,7671,7645,7184,7554,7550,7526,7100,7507,6567,
            5585,7493,7416,6875,4746,756,4995,6774,6384,5704,
            5590,0,4605,5847,7329,6421,5318,739,4114,3911,
            7316,5568,5164,6505,4755,6473,4619,3898,5052,5005,
            4952,4128,0,7329,739,0,673,6377,4028,0,
            3360,2750,7585,7581,2640,2008,1725,7569,1923,7562,
            1919,1704,1609,7671,1294,4555,7645,1574,7184,1327,
            7554,7550,7526,4444,916,7100,7507,6567,5585,909,
            7493,7416,842,1231,6875,4746,799,756,4995,6774,
            6384,5704,826,6377,5590,4028,4161,3577,3557,1813,
            722,4114,3911,7316,5052,5005,4605,4952,5568,4128,
            5164,6505,5847,1511,1048,7329,4755,6421,4804,1834,
            6473,5318,4619,3898,739,6890,6725,6698,5647,5243,
            3294,5595,4000,4343,4565,4458,4414,4292,4717,5541,
            5514,5487,5460,5433,5406,6675,5680,1098,760,2574,
            2495,2416,2337,2258,2179,2100,2021,1942,1863,1784,
            4265,4499,4387,4923,4856,4638,958,879,5276,5199,
            4526,2129,2050,1971,1892,1127,6652,6626,3520,1019,
            929,5711,850,4236,3323,2603,2524,2445,2366,2287,
            2208,3471,1245,3838,3422,3373,3791,3737,3690,1628,
            1579,1525,1182,3636,3589,1458,3245,3196,3147,3098,
            3049,3000,2951,2902,2853,2803,2754,2700,1298,1404,
            1731,1352,1677,673,2653,0,6853,6377,4773,673,
            4028,0,3911,6157,7652,5052,7257,6048,5005,4952,
            6520,7630,6853,6721,6536,6382,6090,4820,5981,6505,
            7626,5847,4773,5751,7612,7590,4075,7240,5084,5313,
            5070,4755,5240,4680,673,6121,4190,6473,4667,4179,
            3963,986,4033,6377,6023,5956,4751,5075,3924,5065,
            4887,3866,3958,4028,6054,4605,7374,5987,7436,7342,
            7423,4128,6188,6761,6524,6421,5318,5000,3898,0,
            7359,7173,6306,6239,6172,6105,6038,5971,5904,5837,
            5770,5703,5303,5101,7215,6864,6763,6747,7194,7131,
            7110,7047,7026,6956,6935,6525,0,7215,6864,6763,
            6747,7194,7131,7110,7047,7026,6956,6935,6525,7359,
            7173,0
        };
    };
    public final static char scopeState[] = ScopeState.scopeState;
    @Override
    public final int scopeState(int index) { return scopeState[index]; }

    public interface InSymb {
        public final static char inSymb[] = {0,
            0,336,69,5,136,182,219,36,39,54,
            34,68,257,68,312,365,276,6,7,5,
            277,253,278,252,279,63,307,133,13,135,
            335,280,29,314,136,3,4,141,140,9,
            8,133,135,198,54,54,54,66,54,41,
            283,258,132,169,135,135,3,3,3,3,
            167,350,308,169,345,308,169,66,135,213,
            184,183,29,61,52,47,43,42,10,12,
            45,44,135,8,3,57,48,51,53,49,
            13,144,149,79,136,306,215,204,198,136,
            286,313,238,169,135,200,215,66,66,185,
            70,3,77,78,133,132,213,184,3,66,
            75,136,167,167,283,80,213,213,366,41,
            295,3,364,1,41,136,184,262,134,133,
            135,132,167,135,136,184,54,4,3,3,
            3,3,77,78,184,134,205,187,172,167,
            185,136,3,66,66,66,66,135,3,126,
            128,3,70,136,315,76,169,70,238,169,
            135,3,80,73,215,184,12,10,136,136,
            136,70,70,220,136,136,136,136,167,135,
            258,137,76,163,3,73,362,331,3,349,
            135,180,254,68,54,69,182,352,134,133,
            263,169,263,213,167,136,213,290,136,271,
            154,156,155,3,186,157,196,195,202,201,
            206,72,207,293,220,298,220,205,205,205,
            205,70,337,3,163,136,136,3,241,240,
            305,166,157,170,168,174,171,175,176,144,
            134,133,13,135,29,205,172,205,205,205,
            205,184,244,136,54,135,54,244,172,315,
            324,135,325,237,176,169,184,164,167,236,
            169,169,200,200,290,290,238,259,260,162,
            261,326,54,13,62,255,255,136,213,10,
            1,73,163,3,41,1,184,136,263,263,
            136,136,220,136,310,132,311,276,277,278,
            279,359,280,13,99,105,43,42,107,106,
            10,186,97,96,66,83,84,12,101,100,
            103,102,104,119,118,117,116,115,114,113,
            112,111,110,80,109,108,73,4,163,163,
            163,163,234,3,338,185,164,341,88,86,
            1,172,11,95,93,91,89,82,92,94,
            87,85,68,79,238,248,136,3,73,121,
            120,97,96,75,66,12,101,100,103,102,
            104,119,118,117,116,115,114,113,112,111,
            110,80,109,108,135,184,150,3,75,75,
            75,75,220,274,135,213,184,316,73,213,
            3,136,167,10,136,163,80,248,215,3,
            136,73,73,75,66,262,262,255,258,1,
            363,220,351,76,267,215,133,265,169,136,
            136,76,310,309,80,73,135,155,155,154,
            154,154,75,157,157,157,156,156,195,186,
            186,201,196,202,172,206,205,136,136,11,
            76,367,237,76,3,3,3,222,3,132,
            172,132,187,259,136,157,157,157,157,157,
            157,168,166,166,171,170,174,274,172,175,
            184,54,205,3,3,3,3,134,133,245,
            8,54,136,244,136,200,194,136,80,80,
            136,238,136,80,80,73,137,73,76,80,
            169,265,169,158,354,254,31,135,309,184,
            157,76,163,300,303,70,214,76,98,76,
            256,185,256,343,162,82,256,136,163,259,
            76,76,220,163,172,172,172,172,3,3,
            4,132,134,317,122,348,136,246,326,265,
            169,73,135,31,355,213,220,136,3,70,
            172,163,215,163,342,136,3,163,317,136,
            163,134,244,244,4,3,233,73,136,75,
            213,135,135,300,244,237,80,222,178,306,
            172,246,136,98,360,185,233,11,72,62,
            213,213,130,340,163,136,246,163,163,136,
            3,262,163,136,361,80,73
        };
    };
    public final static char inSymb[] = InSymb.inSymb;
    @Override
    public final int inSymb(int index) { return inSymb[index]; }

    public interface Name {
        public final static String name[] = {
            "",
            "[",
            "(",
            ".",
            ".*",
            "->",
            "->*",
            "++",
            "--",
            "&",
            "*",
            "+",
            "-",
            "~",
            "!",
            "/",
            "%",
            ">>",
            "<<",
            "<",
            ">",
            "<=",
            ">=",
            "==",
            "!=",
            "^",
            "|",
            "&&",
            "||",
            "?",
            ":",
            "::",
            "...",
            "=",
            "*=",
            "/=",
            "%=",
            "+=",
            "-=",
            ">>=",
            "<<=",
            "&=",
            "^=",
            "|=",
            ",",
            ">?",
            "<?",
            "$empty",
            "_Complex",
            "_Imaginary",
            "restrict",
            "asm",
            "auto",
            "bool",
            "break",
            "case",
            "catch",
            "char",
            "class",
            "const",
            "const_cast",
            "continue",
            "default",
            "delete",
            "do",
            "double",
            "dynamic_cast",
            "else",
            "enum",
            "explicit",
            "export",
            "extern",
            "false",
            "float",
            "for",
            "friend",
            "goto",
            "if",
            "inline",
            "int",
            "long",
            "mutable",
            "namespace",
            "new",
            "operator",
            "private",
            "protected",
            "public",
            "register",
            "reinterpret_cast",
            "return",
            "short",
            "signed",
            "sizeof",
            "static",
            "static_cast",
            "struct",
            "switch",
            "template",
            "this",
            "throw",
            "try",
            "true",
            "typedef",
            "typeid",
            "typename",
            "union",
            "unsigned",
            "using",
            "virtual",
            "void",
            "volatile",
            "wchar_t",
            "while",
            "integer",
            "floating",
            "charconst",
            "stringlit",
            "identifier",
            "Completion",
            "EndOfCompletion",
            "Invalid",
            "RightBracket",
            "RightParen",
            "RightBrace",
            "SemiColon",
            "LeftBrace",
            "typeof",
            "__alignof__",
            "__attribute__",
            "__declspec",
            "ERROR_TOKEN",
            "EOF_TOKEN",
            "]",
            ")",
            "}",
            ";",
            "{",
            "identifier_token",
            "expression",
            "id_expression",
            "qualified_or_unqualified_name",
            "unqualified_id_name",
            "identifier_name",
            "template_id_name",
            "nested_name_specifier",
            "class_or_namespace_name",
            "nested_name_specifier_with_tem" +
            "plate",
            "class_or_namespace_name_with_t" +
            "emplate",
            "class_name",
            "postfix_expression",
            "simple_type_specifier",
            "pseudo_destructor_name",
            "type_id",
            "type_name",
            "destructor_type_name",
            "unary_expression",
            "cast_expression",
            "new_type_id",
            "expression_list",
            "type_specifier_seq",
            "new_declarator",
            "new_pointer_operators",
            "ptr_operator",
            "new_array_expressions",
            "constant_expression",
            "pm_expression",
            "multiplicative_expression",
            "additive_expression",
            "shift_expression",
            "relational_expression",
            "equality_expression",
            "and_expression",
            "exclusive_or_expression",
            "inclusive_or_expression",
            "logical_and_expression",
            "logical_or_expression",
            "assignment_expression",
            "relational_expression_inTempla" +
            "te",
            "equality_expression_inTemplate",
            "and_expression_inTemplate",
            "exclusive_or_expression_inTemp" +
            "late",
            "inclusive_or_expression_inTemp" +
            "late",
            "logical_and_expression_inTempl" +
            "ate",
            "logical_or_expression_inTempla" +
            "te",
            "assignment_expression_inTempla" +
            "te",
            "expression_list_actual",
            "statement",
            "compound_statement",
            "statement_seq",
            "condition",
            "declarator",
            "for_init_statement",
            "function_definition",
            "declaration",
            "declaration_seq",
            "declaration_specifiers",
            "simple_declaration_specifiers",
            "class_declaration_specifiers",
            "elaborated_declaration_specifi" +
            "ers",
            "enum_declaration_specifiers",
            "type_name_declaration_specifie" +
            "rs",
            "no_type_declaration_specifier",
            "cv_qualifier",
            "no_type_declaration_specifiers",
            "class_specifier",
            "elaborated_type_specifier",
            "enum_specifier",
            "type_name_specifier",
            "class_keyword",
            "enumerator_list",
            "enumerator_definition",
            "namespace_name",
            "init_declarator_list",
            "init_declarator_complete",
            "complete_declarator",
            "initializer",
            "direct_declarator",
            "ptr_operator_seq",
            "function_declarator",
            "basic_direct_declarator",
            "array_direct_declarator",
            "array_modifier",
            "abstract_declarator",
            "direct_abstract_declarator",
            "basic_direct_abstract_declarat" +
            "or",
            "array_direct_abstract_declarat" +
            "or",
            "parameter_declaration_list",
            "parameter_declaration",
            "parameter_init_declarator",
            "parameter_initializer",
            "function_body",
            "handler_seq",
            "initializer_clause",
            "initializer_list",
            "initializer_seq",
            "class_head",
            "access_specifier_keyword",
            "member_declaration",
            "member_declarator_list",
            "member_declaration_list",
            "member_declarator_complete",
            "constant_initializer",
            "bit_field_declarator",
            "base_specifier_list",
            "base_specifier",
            "conversion_function_id",
            "conversion_type_id",
            "conversion_declarator",
            "mem_initializer_list",
            "mem_initializer",
            "mem_initializer_name",
            "operator_id_name",
            "overloadable_operator",
            "template_parameter_list",
            "template_parameter",
            "template_argument_list",
            "template_argument",
            "type_name_specifier_inTemplate",
            "type_name_declaration_specifie" +
            "rs_inTemplate",
            "type_specifier_seq_inTemplate",
            "handler",
            "exception_declaration",
            "type_id_list",
            "attribute_or_decl_specifier",
            "attribute_or_decl_specifier_se" +
            "q",
            "word",
            "extended_decl_modifier_seq",
            "extended_decl_modifier",
            "extended_asm_param",
            "case_range_expression",
            "typeof_declaration_specifiers",
            "typeof_type_specifier"
        };
    };
    public final static String name[] = Name.name;
    public final String name(int index) { return name[index]; }

    public final static int
           ERROR_SYMBOL      = 71,
           SCOPE_UBOUND      = 153,
           SCOPE_SIZE        = 154,
           MAX_NAME_LENGTH   = 43;

    public final int getErrorSymbol() { return ERROR_SYMBOL; }
    public final int getScopeUbound() { return SCOPE_UBOUND; }
    public final int getScopeSize() { return SCOPE_SIZE; }
    public final int getMaxNameLength() { return MAX_NAME_LENGTH; }

    public final static int
           NUM_STATES        = 687,
           NT_OFFSET         = 131,
           LA_STATE_OFFSET   = 9571,
           MAX_LA            = 2147483647,
           NUM_RULES         = 672,
           NUM_NONTERMINALS  = 244,
           NUM_SYMBOLS       = 375,
           SEGMENT_SIZE      = 8192,
           START_STATE       = 6525,
           IDENTIFIER_SYMBOL = 0,
           EOFT_SYMBOL       = 129,
           EOLT_SYMBOL       = 129,
           ACCEPT_ACTION     = 7893,
           ERROR_ACTION      = 8899;

    public final static boolean BACKTRACK = true;

    public final int getNumStates() { return NUM_STATES; }
    public final int getNtOffset() { return NT_OFFSET; }
    public final int getLaStateOffset() { return LA_STATE_OFFSET; }
    public final int getMaxLa() { return MAX_LA; }
    public final int getNumRules() { return NUM_RULES; }
    public final int getNumNonterminals() { return NUM_NONTERMINALS; }
    public final int getNumSymbols() { return NUM_SYMBOLS; }
    public final int getSegmentSize() { return SEGMENT_SIZE; }
    public final int getStartState() { return START_STATE; }
    public final int getStartSymbol() { return lhs[0]; }
    public final int getIdentifierSymbol() { return IDENTIFIER_SYMBOL; }
    public final int getEoftSymbol() { return EOFT_SYMBOL; }
    public final int getEoltSymbol() { return EOLT_SYMBOL; }
    public final int getAcceptAction() { return ACCEPT_ACTION; }
    public final int getErrorAction() { return ERROR_ACTION; }
    public final boolean isValidForParser() { return isValidForParser; }
    public final boolean getBacktrack() { return BACKTRACK; }

    public final int originalState(int state) {
        return -baseCheck[state];
    }
    public final int asi(int state) {
        return asb[originalState(state)];
    }
    public final int nasi(int state) {
        return nasb[originalState(state)];
    }
    public final int inSymbol(int state) {
        return inSymb[originalState(state)];
    }

    public final int ntAction(int state, int sym) {
        return baseAction[state + sym];
    }

    public final int tAction(int state, int sym) {
        int i = baseAction[state],
            k = i + sym;
        return termAction[termCheck[k] == sym ? k : i];
    }
    public final int lookAhead(int la_state, int sym) {
        int k = la_state + sym;
        return termAction[termCheck[k] == sym ? k : la_state];
    }
}
